They used to be able to using parallel ports. When the controller was on the southbridge and accessible via DMA, you could get hard realtime even on Windows using device drivers and interrupts (pre-Vista, which changed the security model). There was software like Mach3 that could control a whole CNC off of a parallel port and lots of hardware companies used Wintel instead of SBCs or rolling their own PCB. San Francisco BART still uses parallel ports to control their trains and they have to hunt down for replacement parts on eBay [1].
Nowadays a PCIe GPIO card is at least a few hundred dollars and you're unlikely to get hard realtime guarantees unless it supports uploading custom firmware. Sharing functionality with the most common printer interface was a boon for PC GPIO but that's gone now.