Short answer: "because float"
Floating point math is deterministic, in that the same operations on the same data will always produce the same results...
...but slightly different operations that should be mathematically equivalent, may produce slightly different rounding errors.
It's possible that one of your implementations of Java has a different implementation of the pow function than the other. Because you're using Java, you're at the mercy of the device's JVM in which floating point instructions it uses. Without being able to control the FP instructions yourself, it's likely that you won't be able to achieve 100% determinism across different platforms.