Looks like the grbl post-processor in Freecad defaults to relative, which is what my gcode shows. This gcode worked fine on my cheap 3018 CNC. I think the issue is with the MPCNC configuration and the posted workaround is to convert G2 commands to segmented G1 movements.
I have some additional tests to run before being able to confirm the above.
To be clear, I don't have any issues with the G2/G3 commands generated from Freecad and grbl post-processor, I'm just looking for an easy way to implement the workaround above, specific to my MPCNC machine.