I don't understand at times why this discussion can become so complicated...
The answer is simple. At the end of the day, frameworks are code libraries just like when we do #include <strings.h>, #include <stdio.h>, etc... In C instead of implementing our own super low-level functions. Frameworks save time and make development easier. Plain and simple.
Whether or not they are "better" for you is completely dependent on how many resources (time, money, and developers) to develop a solution. 99% of startups will use these frameworks because they are small and don't have millions of dollars to spend on custom development costs.
I used to slam frameworks and it's true - I personally find "from-scratch" development more fun.
The problem is, what Todd considers fun and what a business actually needs are two very different things. This is why I code my own stuff from scratch on my own time and I use what is required for work on their time. There is no use constantly grinding gears with work over whether or not I personally like developing on a framework.
I do have several qualms with frameworks:
I don't particularly like anything that is used "to make things easy." Why? Because there is always a cost and I've found taking the hard way in life is often more rewarding. A good analogy is a nice premium car wax vs an all-in-one wash and wax. The car will do a lot better and look better if you take the time to apply a premium wash, clay bar it, and then apply a nice high-quality wax. However, people use all-in-ones to save time. Sadly, all-in-one wash and waxes are never as good as individually applied soaps and waxes.
Sometimes the dependencies of frameworks get wayyyyyyy carried away and they create HUGE inefficiencies and security holes in the system. Can you guarantee me that there's no vulnerabilities in your app's 45 dependencies? No you can't because simply auditing all of that code would require so many security engineers that it would be easier to just code your entire application from scratch.
I personally do not enjoy fighting with version issues and dealing with learning how 500 frameworks and their nuances work... I would much rather deal with actual coding logic issues at a more granular level.
Other than that, I have no real issues with frameworks.