Você poderia tentar algo como:
awk 'NR==FNR{z[$1]?z[$1]=z[$1]"|"$2"|"$3:z[$1]=$2"|"$3;next}
{if ($1 in z){l=split(z[$1], k, "|");
{for (i=1;i<l;i+=2){if ($2>=k[i] && $3<=k[i+1]){print}}}}}' file1 file2
Lê file1 , une os campos 2 e 3 com | e salva isso em uma matriz z (indexada pelo primeiro campo), depois lê file2 e verifica se o primeiro campo está em z - se assim for, ele divide z[1st field] em | em k[i] e, para cada valor ímpar de i , imprime a linha se o segundo campo >=k[i] e o terceiro campo <=k[i+1]