Se você realmente quiser fazer isso no bash, sugiro usar a opção -u fd
para ler os dois arquivos simultaneamente usando fluxos numerados, por exemplo
while read -r -u3 product; read -r -u4 comp; do
printf '%s;%s\n' "$product" "$comp"
done 3<products.txt 4<comps.txt
No entanto, você pode usar apenas o utilitário paste
paste -d\; products.txt comps.txt