It's because MS-DOS and to a lesser extent Windows 3 was so bad at isolating you from the hardware that all the hardware had to be identical. If MS-DOS had been more like, say, CP/M then we would have had loads of weird machines from different manufacturers isolated from the software by proprietary BIOS[1] blobs. This would have made it harder to provide a useful Linux that worked across multiple machines.
[1] I mean "BIOS" in the CP/M sense of a layer that completely abstracted the hardware to the BDOS.