the tl;dr
version is that running sh from a scripting context does not give you access to the same bash environment as that which runs in Terminal.app
You will need to explicitly export any PATH or locale settings which your script depends on.
See, for example, this discussion:
( The same principles apply, for what it's worth, when you use do shell script
from Applescript )