Table of Contents
TODO sh and shell modifiers in org babel
Link
Problem description
The difference is which shell gets called to evaluate your block. shell calls whatever your default shell is while sh calls /bin/sh specifically. Your default shell is probably bash, which is an extension of sh. echo $0 will tell you what executable your shell is running:
echo $0
echo $0
Any of the shells in org-babel-shell-names that is installed on your system will work.