How much of that is because Intel and Microsoft have included backwards compatibility all the way back to DOS 1.0 on 8086, making it hard to convince the beancounters of a business case for porting.
Sounds great in theory, why mess with software that "works", after all? The problem is that the people who understand it leave, and then it goes from "we can't justify spending someone's time to port this" to "we can't port this". So that old application written for Windows NT that doesn't take any advantage of multicore, has logic to optimize performance for a rotating hard drive that's pointless when it uses an SSD, and assumes VGA resolution since that was the lowest common denominator at the time will be used essentially forever.
At least they're finally being forced to replace that old ActiveX stuff, since the new Edge browser doesn't support that or 'IE6 mode' any longer.
Backwards compatibility is a good thing in the short term, but if you extend it out forever it is a curse.