Você está usando a variável FILENAME com um valor vazio (você nunca atribui FILENAME a um valor na linha de comando), isso deve gerar um erro antes mesmo do script awk começa a correr. awk já tem uma variável chamada FILENAME que você pode usar. É o nome do arquivo de entrada atual.
Usando -vNoOfRecordsPerFile , você diz que deseja atribuir um valor a uma variável awk na linha de comando, mas nunca atribui um valor. Isso deve produzir um erro diferente daquele que você diz que está recebendo. Se você quisesse usar o valor da variável shell com o mesmo nome, use -v NoOfRecordsPerFile="$NoOfRecordsPerFile" .
Assim, o comando final awk torna-se:
awk -v NoOfRecordsPerFile="$NoOfRecordsPerFile" '
((NR-1) % NoOfRecordsPerFile) == 0 { x = FILENAME "-" ++i ".txt" }
{ print > x }' "$FILENAME"