What changed that made selling software (as opposed to renting) work before that prevents it from working now?
It's a bunch of things. In the old days, if you bought software in a box for your OS (let's say DOS), you didn't expect it to need to be updated. It also continued to work just fine and maybe you didn't update your OS that frequently or had security issues to worry about. Nowadays, iOS gets updated every year and APIs get deprecated, and users update, so you have to maintain the app after initially shipping it.
A lot of people also expect the software to add features over time. In the old days, you'd ship a brand new major version and charge people for that and stop working on the old one. With the App Store, I suppose you could technically abandon the old version and sell a whole new version, but then all your old users will be annoyed if the app is removed from the store or no longer works when they update their OS. You could gate new features behind a paywall, and I know some apps do this, but then it adds to the complexity of the app as you have to worry about features that work for some users but not others.
I think people also expect software nowadays to be cheap or free, I think due to large corporations being able to fund free stuff (say gmail) by other means (say ads or tracking users). That means users would balk if you asked them to pay $50 for your little calendar app, so if you did ask for a one-time payment, it would be $5-$10, which is nowhere near enough to recoup whatever time you spent, unless you hit it big. Hitting it big nowadays with an app is difficult since there's so much competition in the App Stores and everyone has raced to the bottom to sell apps for pennies.
There used to be a lot less expectation of post-sale maintenance of consumer software in the era where sales rather than subscriptions were the norm. There was also tolerance for higher up-front prices, and for much of that period sales depended on marketing through and validation by a narrow set of relatively trusted discovery channels, which customer the perceived risk to buyers. Now everything is untrusted, no one wants to pay much upfront but everyone expects ongoing support over they've got the thing. I’m not saying subscription is the only thing that works, but it's pretty easy to see that the calculus facing the average vendor has shifted tremendously over time.