bsh=Bourne shell
bash=Bourne again shell
sh=POSIX shell(一般的に)

POSIXは規格でbashやksh,zsh等々のPOSIX準拠のシェルを指す
なのでshebangで#!/bin/shとなってるのは一般的にPOSIX準拠だから実質的にbashでもzshでも動く

ところがbshはPOSIX準拠では無い
bshはPOSIX規格が出来る前からあるから機能的に足りないし
細かい所が結構違う