Se file2
contiver (por exemplo)
The quick brown
fox jumps over
the lazy dog.
a primeira parte do seu script awk
está sendo definida
h1["The"]="The"
h2["quick"]="quick"
h3["brown"]="brown"
h1["fox"]="fox"
h2["jumps"]="jumps"
h3["over"]="over"
h1["the"]="the"
h2["lazy"]="lazy"
h3["dog."]="dog."
Isso não é bom quando você tenta usar esses valores salvos na segunda parte do script; você precisa indexar os arrays por número de linha:
h1[1]="The"
h2[1]="quick"
h3[1]="brown"
h1[2]="fox"
h2[2]="jumps"
h3[2]="over"
h1[3]="the"
h2[3]="lazy"
h3[3]="dog."
Então, seu script precisa ser
awk 'NR==FNR {h1[FNR] = $1; h2[FNR] = $2; h3[FNR] = $3; next}
{print $1,$2,$3,$4,$5,$6,h1[FNR],h2[FNR],h3[FNR],$10,$11,$12}' file2 file1