(1) Users are more empowered and expected to continually change requirements all the time. (2) The underlying technology is broken. Specifically, there is no component model that makes it easy to compose existing components. Every frontend app reinvents not just the wheel but the tools to cut the stone. (3) There is no UI component model provided by the browser. Every webapp looks and behaves completely different from every other webapp. There are no common metaphors, common components, common fonts, common icons or even best practices. Every company writes their own UI kit and interface guidelines. (4) Thanks to the highly intelligent fuckers at Google/Facebook/Yahoo everybody has very high expectations when it comes to Web UIs. These guys are also driving rapid innovation in the space. Unlike Windows apps -- which haven't changed much in 25 years -- Webapps seem to become dramatically different every 3-5 years.
The result is the wild west meets post-apocalyptic disaster where everything is constantly changing and the developers don't have the tools to actually manage or control this change.