No seu exemplo, você está criando o array m com valores 0. Você não o define como 1 e não precisa. Você pode definir o valor para a linha inteira, por exemplo, $ 0.
Tente isto:
awk 'FILENAME == ARGV[1] {
m[$2,$3] = $0;
next;
}
{
if (($2,$3) in m) {
print m[$2,$3] " " $4 >"out.txt";
}
}' file1.txt file2.txt