The biggest problem with emulating old DOS programs is that there were no device drivers to speak of, so everything controlled hardware directly. New machines don't like that. Everyone ignored the serial, parallel, and video drivers in ROM because they were garbage, and proprietary hardware had to be controlled directly by the application, often through parallel ports or custom ISA cards. The main thing people let the OS do was handle mass storage, and even that required custom TSR drivers for stuff like external drives. New machines are also just too damn fast for some of the timing loops that were hard-coded. Some of these issues can be handled in emulation, but a lot of them can't.