echo (no bash e /bin/echo ) não expande as fugas por padrão. Isso significa que seus caracteres CR e LF estão literalmente sendo enviados como \r e \n . Você precisa fornecer a opção -e para ativar as fugas.
$ echo -en "GET / HTTP/1.0\r\n\r\n" | nc localhost 80
HTTP/1.1 403 Forbidden