Como você usa aspas duplas, o shell interpreta $1 e $2 , substituindo-as pelos dois primeiros argumentos no contexto atual (provavelmente a string vazia em ambos os casos, dado o erro que você está recebendo ). Você deve usar aspas simples:
awk '{ print $1-$2; }'