You might have left out one more “But”.
But it’s boring!
The fundamental reason why people don’t” like it is because refactoring isn’t “fun.” People are anxious to get to “done”. Fun is starting new stuff, not finishing old stuff.
One key we’ve found is to make refactoring an explicit part of the process, which means the teams need to have one.
Coding, verification (peer review), refactoring, would all be columns in a team’s recursive visualization. Refactoring needs to be visibly part of the work in order for it to become part of the flow.
The cool thing here is that “fun” was the excuse. “We never bothered to agree on how we actually build software” was the reality. Once they agreed, refactoring was fun.