回答:
プログラム的には、最初の2つ(.commandと.tool)の違いは微妙ですが、3つ目は基本的に単純なデフォルトのシェルスクリプトです。実際、Xcode 4.1に関連付けられています。
.shファイルはデフォルトでXcodeによって「所有」されているため、いずれかをダブルクリックすると、実行する代わりにXcodeで開きます。
.commandおよび.toolファイルはデフォルトでTerminalが所有しているため、いずれかをダブルクリックすると、Terminalで開いて実行されます。
私はそれらの間の他の違いを知りません。
私も、シェルスクリプトに.shを使用しましたが、shの代わりにZshでシェルスクリプトの記述を開始したため、最近停止しました。特定のコマンドが.shで終了したか、 .zshなので、最終的にはすべてを〜/ bin /に入れて、実行可能であることを確認し、ファイル拡張子をまったく使用しません。