O Bash expande as variáveis (como identificadores que começam com $ ) entre aspas duplas " .
Embora isso também devesse ter sido um problema ao fazer isso interativamente a partir da linha de comando.
O Bash tentará expandir "$NF" , se a variável NF não estiver definida, o bash expandirá isso para a sequência vazia.
Geralmente, você pode usar aspas simples em ' para que $NF não seja expandido por bash.
No entanto, como você deseja que ${server_name} expanda, tente tentar escapar em dobro
machine_type='awk "BEGIN{IGNORECASE=1;}/${server_name}/ {print \$NF}" ff_servers.db'
Você também pode tentar usar a concatenação de strings, a diferença é principalmente estilística.
machine_type='awk 'BEGIN{IGNORECASE=1;}/'${server_name}'/{print $NF}' ff_servers.db'
Isso funciona como o bash irá concatenar as strings adjacentes juntas.