Credo che i file .sh siano "posseduti" da Xcode di default, quindi se dovessi fare doppio clic su uno di essi, si aprirà in Xcode invece di eseguirlo.
I file .com e .tool sono di proprietà di Terminal per impostazione predefinita, quindi se si fa doppio clic su uno di essi, verrà aperto ed eseguito nel terminale.
Non sono a conoscenza di altre differenze tra di loro.
Anch'io ho usato .sh per gli script di shell, ma di recente mi sono fermato perché ho iniziato a scrivere i miei script di shell in Zsh invece di sh, ed era confuso cercare di ricordare se un determinato comando terminasse .sh o .zsh, quindi alla fine li ho messi tutti in ~ / bin / e ho fatto in modo che fossero eseguibili, e non usare affatto le estensioni dei file.