When using the fop 2.3 binary download with a MSYS2 shell, the fop command in the main directory fails because it does not know anything about MSYS2. Same problem exists after running fop from a MINGW32/64 bash. The fop.bat worked out of the box but would need cmd.exe.
The patch (for fop 1.0) is from here: https://gist.github.com/lammermann/1307565
My patch enables MSYS2 too (MSYS2 uses different uname's for its shells) and targets version 2.3.
To test it you need a JAVA_HOME env variable which leads to a JRE (tested with jre1.8.0_192) and you have to add $JAVA_HOME/bin and fop-2.3/fop to the PATH variable.