On the php|architect blog there's a new post from Cal Evans (of Ibuildings) with what he thinks is one of the largest reasons that frameworks aren't as well-adopted as they should be - arrogance.
Developers are notoriously self-confident in their ability to write code that is better, faster, cleaner and better-smelling than everybody else's. In today's environment, however, the focus is on producing immediately useful code'"and, given the richness of today's frameworks, those who eschew them in favour of home-grown solutions are forever running the risk of reinventing the wheel for no good reason. We have enough wheels'"start building some cars.
He suggests that, with all of the "reinventing the wheel" that's been going on and overpowering frameworks that are out there, that developers need to take a step back and find a framework that fits for them. Coding from scratch (usually) isn't a good option - there's almost always a framework or application based on one out there that'll fit with just what you need.
Pick a framework that has a thriving community and then spend the time to learn it. Quit re-inventing the wheel, start using the wheel to solve your client's problems. Get out there and build them a car.