The split between SymPy functions and Mathics wrappers around these functions, together with the pattern matching is probably responsible for the slower system.
Therefore in the Symja project[0] we try to implement it all together in one (Java) library. Mathematica syntax can be tested in the MMA Console[1], but the documentation of the functions [2] is in the "normally used Symja syntax", which is much easier to use for the "common calculator user".
[0] https://github.com/axkr/symja_android_library [1] https://github.com/axkr/symja_android_library/wiki/MMA-conso... [2] https://github.com/axkr/symja_android_library/tree/master/sy...