Because Mach uses the internal PC's processor to generate the high speed Step & dir (often thousands of pulses per second for each axis) timing is critical. With a parallel port you can predict the timing and output semi stable high speed pulse trains. Actually only Art has figured out how to do that at a level that provides pulses up to (now) 100,000 per axis per second.
USB has some short comings. It is a serial shared resource and the timing is not predictable nor can you grab the resource and control it easily to get predictable real time pulsing. The approach has to be to send a description of where you want to go (trajectory planning) and have external pulsing hardware/firmware on the USB port do the realtime pulse train. Seems simple enough, but so far the attempts have been less than sterling and the added cost of hardware and processing power is a detraction. As in everything the devil is in the details. Moving 3 or more axis in coordinated and high speed (compared to just rotating a single motor at 100 RPM) is not easy.
There are other reasons USB may not be the best answer for CNC motion control even IF the costs get more reasonable.
There are some things being worked on with MACH and USB but the price point may not hit your mark and at this point a 25.00 USD paralllel port plug in card is a better solution.
Using laptops for CNC control is a poor choice of resources. The PC you use for the machine really needs to be dedicated and clean of anything but the control software. I don't know about your shop but mine is a hazard to any small piece of portable gear, and jerking a laptop off a table because one of the cords gets hung in a passing person/object/thing is a lot more expensive than smashing a 5.00 keyboard. (been there done that). Laptops are banned in our shop.
I use a laptop in the house with a wireless networking card to be able to draw and generate the g-code for my cutting. I use the workstation at the CNC to receive and run the G-code.