Isso está acontecendo porque seu daemon está apenas ouvindo no IPv4.
IPv6 é o protocolo padrão, portanto, se um determinado nome de host tiver endereços IPv4 e IPv6, o endereço IPv6 sempre será tentado primeiro.
No seu caso, localhost tem o endereço IPv4 127.0.0.1 e o endereço IPv6 ::1 . Mas seu daemon está apenas ouvindo 127.0.0.1 .
Assim, quando nc tenta se conectar a localhost , ele primeiro se conecta a ::1 , descobre que nada está escutando e retorna Connection refused . Em seguida, ele tenta se conectar ao 127.0.0.1 e encontra seu daemon.