The problem with CNC machining, is it usually requires far faster and more accurate motion than 3D printing, and an Arduino is not really up to the task.
Even an ARM processor isn't ideal, as getting jitter free motion needs good clock scaling, which can be handled far better in an FPGA, which is why you'll find nearly all CNC motion controllers use an FPGA for motion generation, often paired with some form of microprocessor which handles communication and the maths for generating the motion paths, before passing the required motion to the FPGA.
LinuxCNC and Mach running via a parallel port also have the same issue, however they ultimately rely on using a sledgehammer to crack a nut, by throwing enough processing power at the problem, you can get it to work well enough it's not a problem.

And then you have the available hardware. Nearly all shields I'm sure have been designed with 3D printing in mind, where speed and acceleration requirements aren't that great, so 24V is acceptable. If you were to use those same speeds on any reasonably sized router or mill, it would be painfully slow.
Hardware really is a case of, you get what you pay for.