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; }'