o awk está sempre tentando interpretar $<something> como um valor de campo (por exemplo, $0 - o registro inteiro, $3 - o terceiro campo, $NF - o último valor do campo)
Nome do diretório de passagem via variável:
awk -v dir="$TRANSDIR" '/FILE-HDRPQ/{x=substr ($0,11,6)}
NR>1{print $0 > dir"/"x"_prchgrpt.txt";}' "$TRANSDIR/$prcfile"