Isso porque seus valores x
e y
são sobrescritos e, portanto, apenas a última linha do arquivo1 persistirá. Tente esta pequena adaptação do seu one-liner usando um array:
awk 'FNR==NR && $2=="hdu" {y[$1] = $5} NR!=FNR { if ($3 in y) {$2 = y[$3]} print} ' file1 file2