Well, there are plenty of reasons you might choose EMC over Mach 3, depending on what you are doing.
From what I remember of the last time I used it, Mach 3 is basically a complete hobbyist level controller. It gives most hobbyists with basic machines the features they want right out of the box. It is built from the ground up for this. It may also work well for low end production machines.
EMC is a realtime industrial CNC controller that happens to include some basic UIs and stuff suitable for hobby use. It is based on rcslib and GNU/Linux/RTAI, which are used to control all sorts of robotic equipment, including things that are WAY outside of the typical hobbyist or even professional machine shop range.
So in terms of high end capability and overall flexibility, EMC wins hands down. Mach3 doesn't even really compete with it. If you wanted, you could run a large assembly line with EMC (this is part of what rcslib was originally designed to do). The downside is that you need to do a significant amount of work in these cases.
If you are using a basic 3 axis stepper controlled mill or lathe and don't want to go beyond that configuration, they both work fine. Mach 3 has a fancier UI than any of the ones that currently come with EMC if you care about that.
Since EMC is realtime, you can often run into hardware interrupt issues that cause latency problems. This means it may not run well on many computers. On the other hand, this allows you to close servo loops and stuff on the computer, and get much more accurate timing.
EMC is convenient if you already use Linux. It is libre, which is a very significant benefit to integrators and those who can write software. It is also gratis, though that probably isn't a significant consideration considering the cost of the machines it controls.
EMC2 gets really nice when you have a more complex machine, or want to modify or add to the software. It offers many more possibilities in that respect.
Personally, I use EMC because:
- Except for gaming, I use Linux almost exclusively for work and home use, so I find it easier to use
- I'm interested in building some fairly complex machines in the future and don't want to be limited to specific kinematics or control features
- I use rcslib at work
- I like the modification potential it offers
If you are thinking of switching to EMC, you can download a live CD and try it out. You may find you just like it better.