No Solaris grep, a opção -w significa que o padrão inteiro deve corresponder apenas a uma palavra, que é diferente do significado de -w do GNU grep que a correspondência deve formar palavras inteiras .
Se você adicionar um $ ao final do seu padrão, isso funcionará com o arquivo de exemplo acima e, em seguida, você não precisará da opção -w:
grep '^[^#]* machine_VIP$' /etc/hosts | head -1 | awk '{print $1}'
... ou você poderia, é claro, instalar o GNU grep em sua máquina solaris se isso for viável.