O motivo pelo qual você não está obtendo o código de erro correto é porque local
é realmente a última coisa executada. Você precisa declarar a variável como local antes de executar o comando.
local RESULTS
RESULTS=$(ssh user@server /usr/local/scripts/test_ping.sh)
echo $?
Você pode ver o problema aqui:
$ bar() { foo=$(ls asdkjasd 2>&1); echo $?; }; bar
2
$ bar() { local foo=$(ls asdkjasd 2>&1); echo $?; }; bar
0
$ bar() { local foo; foo=$(ls asdkjasd 2>&1); echo $?; }; bar
2