` で囲んだのは、その時点でそれが実行されてその出力に置き換えられる。$() はほぼ等価
su - postgres `/home/postgres/work/work/test/b.sh ${1}`

su - postgres b.shの引数1はtestです。
をやろうとしてる(b.shの引数1はtestです。に b.shのテスト出力です。もあるけどな)

だから、
-bash: b.shの引数1はtestです。: そのようなファイルやディレクトリはありません
というメッセージなんだよ
su - postgres b.shの引数1はtestです。
をしようとしてるんだから

やりたいのは、
su - postgres `/home/postgres/work/work/test/b.sh ${1}`
ではなくて、
su - postgres "/home/postgres/work/work/test/b.sh ${1}"
とかだろう