Você deve usar a barra invertida de seqüência de escape (\) dentro do comando awk como abaixo. Como você usa o comando dentro de aspas duplas, as variáveis serão resolvidas antes da execução. Então, ele tentará entender $ 4 como uma variável do sistema e tentar resolvê-lo. Se você usar barra invertida de seqüência de escape, ele reterá o $ 4 no comando awk.
iphost="$(ssh root@$machine -x "host $machine | awk '/has address/ { print \ }'")"
echo $iphost