Provavelmente não há diferença para esse exemplo, mas certamente haveria para este:
ssh [email protected] "echo $PATH"
A razão é que o bash irá avaliar e substituir variáveis dentro de aspas duplas na máquina local mas irá fazê-lo na máquina alvo dentro de aspas simples.
O mesmo é verdadeiro para subshells:
ssh [email protected] "echo 'hostname'"
ssh [email protected] "echo $(hostname)"
No entanto, parece não ser verdade para funções:
$ foo () { echo "Foo"; }
$ foo
Foo
$ ssh [email protected] "foo"
bash: foo: command not found
A globalização também não acontece entre aspas duplas:
$ ssh [email protected] "ls -l *"
$ ssh [email protected] "ls -l numbered_files.?.gz"