Apenas com o bash:
while IFS= read -u3 -r product; do
while IFS= read -u4 -r region; do
while IFS= read -u5 -r option; do
echo "$product $region $option"
done 5<f3
done 4<f2
done 3<f1
Esta versão terá menos i / o de arquivo (leia cada arquivo apenas uma vez) para que seja mais rápido
mapfile -t products < f1
mapfile -t regions < f2
mapfile -t options < f3
for product in "${products[@]}"; do
for region in "${regions[@]}"; do
for option in "${options[@]}"; do
echo "$product $region $option"
done
done
done