I'm using Yoroi and want to switch to another stake pool. I never withdrew my rewards from the current pool. What happens to my rewards when I switch pools? Do I need to withdraw them before I switch to another pool?
No, you do not need to withdraw rewards before moving stake pools.
Cardano wallets use two accounts: one for spending ADA and one for collecting rewards. While this may sound strange, it actually has many benefits (which I won't get into here). In order for earned rewards to be spent, they must be moved from the rewards account to the spending account (become an UTxO) which requires a transaction fee. Until the funds are needed it is fine for them to stay in the rewards account since they are still in your wallet (the pool doesn't have your funds) and they count towards your wallet balance and earn compound rewards. The main take away here is that the rewards are in your wallet and go with you wherever you stake your wallet.
Your rewards are not on the pool, they are in an address owned by you. You don't need to withdraw them before redelegating.
I found a similar question on reddit & an answer references the shelley specification which could be interesting
Please be careful with "link only" answers. They are often subject to link decay, and can become dead links, in which case sch answers become useless. Even if you are sure that the link won't die, it is consider good practice on StackExchange sites to avoid link only answers, by providing an overview, a sum-up, or an slight overview of what the links are describing related to the OP question. Jun 15, 2021 at 10:14