O problema é que, assim que nc aceitar uma conexão, ela tentará ler a partir de stdin. Quando você executa isso como um script bash, ele sempre lê EOF imediatamente e fecha a conexão, o que não acontece quando você o executa fora de um script.
Use -d
para evitar que o nc seja lido no stdin.
nc -d -l 8044 > afile &