The gap from high-end fashion to everyday brands is not so big - take a look at e.g. GQ and look around you to see what people actually wear, and you will quickly start seeing the same patterns and cuts and colours a few months offset (because the fashion magazines tends to report on the upcoming season), just in cheaper imitations - for the most part. And you'll see them spreading as they filter down the cost ladder.
And by the time "everyone" is wearing the cheap imitations, you'll see people in the designer brands wearing different styles and the cycle starts again.
It's the same with UI's: There's a continuous cycle of trying to look modern, refined and exclusive, and so it needs to be regularly reinvented, or it will look old-fashioned, drab and cheap.
It's not about wanting "flashy" (mostly; there are certainly sub-cultures that value flashy above following mainstream fashion). It's about wanting "modern" and "high value".
For many websites, sure, it is superfluous, but the psychological effects are massive; ignore it at your own peril.
Real applications pretty much ignore all that and look like they always have
If you look at clothing design, the fashion side is mostly outlandish and completely impractical. Eventually good ideas filter out of that and get into everyday clothing manufacturing, which is what everyone can actually wear.
The problem with UI design is that UIs need to be used every day, like ordinary clothing, but its becoming like clothing fashion: changing too often and usually full of flashy but unusable cruft. This would be ok if it was limited to a small number of fashionable websites, but instead everyone (but most developers) want the flashy.