O problema é que $() retorna somente quando tcpdump sai, mas nunca sairá no seu caso.
Você pode redirecionar a saída para o comando xargs - ele pode executar dig antes de tcpdump exits
código de exemplo:
tcpdump -nvi any "udp port 53" 2>/dev/null|awk '/A\?/{print $(NF-1);fflush()}' | xargs -n 1 dig @1.1.1.1
Observe também que awk output pode ser armazenada em buffer, então você deve liberar a saída em seu programa awk .