In my experience I would say that jr. developers love frameworks because they don't know a lot and magic frameworks allows them to achieve much more while experienced engineers already know how to do things and how to write own frameworks, in most cases they also understand what exactly happens behind the scences and they try to avoid extra abstraction, layers, processes and algorithms.
Most frameworks are really useless, people just make similar products and can't explain what real world problem they are trying to solve and how exactly they are different from other frameworks. In many cases architecture, support, documentation is also awful.
The main problem with frameworks is that they help a bit in start but later puts you into the cage, you don't have much freedom and will waste a lot of time fighting the framework itself. Each project is unique and you always should start from the scratch, from the lowest architecture level without any abstraction, tools, libraries or frameworks. Add a new layer of abstraction only when you faced a problem which can be solved by that way.
On the other hand, everyone can leran a lot from good frameworks and their authors. I've learned a lot from Bootstrap and mdo himself.
You don't need to use everything framework gives you. Good framework can be easily decomposed and configured. In most business apps I am using only about 20% of Bootstrap with many custom modifications above and on top of that architecture there is app's codebase itself. I have my on CSS architecture based on a bit of BEM and ITCSS. Bootstrap is just a small layer at the bottom I can always replace.
There is also a big difference between backend and frontend. Huge frameworks are needed on backend because it is not language's/platform's/OS's job to give you database layer, security, presentation, routing, caching and everything else. On frontend there is no need of frameworks - JavaScript today is a very powerful tool which allows you to communicate to browser directly and JS was invented for that, JavaScript itself already is the only one and best frontend framework. It will takes ages to master it and learn all modern APIs and standards. Small libraries can and should be used.
At the end, the core problem with frameworks is that most people expect too much from frameworks. It is not framework's job to build your app and your architecture. People always will blame everything else except themselves for not having something done.