I believe the reason is often not a company problem, it's a variety problem that nothing can solve.
It's a totally unavoidable problem with our industry.
People get bored working on one domain, one product and one codebase.
And most software shops have one domain, one product and one codebase.