IMO: Because the DOM and JS suck. They're the war orphans of a browser war lasting 20+ years, during which time different companies seized control for brief periods of time, influencing their development one way or another, making a mess of it all over time.
Most other languages have some sort of steering committee that guides them in a certain direction, where decisions can be made through organized discussions and such. In the HTML/JS world, it's a free for all with each browser vendor unilaterally making lurches here and there, embracing/extending/extinguishing various parts of the DOM and CSS and JS for their own needs, competing with every other browser vendor all the time. In theory we have the W3C and WCAG, but in practice, Google just does what it wants, Apple tries to fight back, and everyone else just follows along.
Because of that, the DOM and CSS and JS etc. don't have a neat way to progress in an orderly fashion, and ECMAscript iteration is way too slow to keep up with the ever-changing needs of big companies with a ton of devs on hand.
These devs can't really just code in pure HTML and CSS for any remotely complex app, because the underlying system is so janky. So all these FE frameworks pop up to try to improve the developer experience, essentially "overloading" janky vanilla JS to a more featureful, easier to use language that includes typing, state management, routing, cache handling, etc. The JS built-ins (its "standard library", so to speak) are pretty weak and you need to fill it with a ton of third-party frameworks and modules to get that functionality if you don't want to keep reinventing the wheel yourself.
It'd be nice if React, etc. could backport their most useful features to vanilla JS/ECMAscript, but until and unless that happens, the frameworks are competing for developer mindshare the same way the browsers keep competing with user mindshare.
It's a free-for-all in the wild marketplace of software-that-ultimately-transpiles-to-HTML. It won't "mature" or "stabilize" until the needs themselves stabilize, and that's probably not going to happen for a while. The web and its needs are still constantly evolving, so the dev software keeps evolving alongside it.
FWIW, it's not so easy in other ecosystems either. Windows tried to shoehorn in WPF, UWP, Windows App SDK, etc... and how many apps end up just being a webpage wrapped in Electron instead? And Android has gone through how many breaking API changes in the last decade?