All the low-hanging fruit has been picked. You can't start with just a crappy app that solves a problem, you have to get all the packaging around it right too.
I'm not a businessman, but I don't think so. Case in point: Beeminder. Their web app has a bit of an "unfinished" feel to it – definitely not a "modern SPA", rather a traditional Rails web app (not that it's something bad, quite the opposite!), but it solves a real problem and has stayed afloat for over 10 years now.
I don’t know Beeminder. But if they launched 10 years ago, they are not a case in point. By now, they probably stay afloat despite feeling unfinished, because they have established marketing channels and word of mouth. Would the same service with the same presentation be as successful if they launched today? Hard to tell.
I absolutely love Beeminder - I use it daily - but they’re not a good example of what an average startup is going for. They have a small but dedicated group of users, not a massive user base that they can later monetize. That makes enough revenue to pay for their employees and for the founders to take a salary, but they’re never going to go big and have an exit. That’s fine (a good thing, in my opinion), but it’s the opposite of what most startup founders want.
A crappy app that solves a problem would be an upgrade in a lot of cases, rather than a company engineering a problem to justify an app that’s been created.
It's more likely that a company started off with a solution for a problem, then got told by investors that it wasn't a big enough problem, and so they had to "pivot" into a more crowded space, without really adding much value.