We could hire less testers / We have to hire more people
That is a misconception. The total amount of testing work is still the same in both scenarios. And if in scenario two a tester dedicated to one product would run "out of work" because there is not enough to test to give him 8 hours work per day, you would probably assign him testing work from a different product either (at least, temporarily).
We have no bottleneck cause each Tester is allocated to a specific product
Same as above - you can still get a bottleneck because there could be too much to test in one product for a single person to meet your schedule.
What you should ask yourself instead is: are the different products mostly independent from each other so they can be tested individually? And do the different products need very specific knowledge to test them well (which means testers have to specialize for each product)? Then it makes sense to assign each product one or more testers as "experts" for this product.
On the other hand, if your different products are just parts of an application system, with heavy interaction between them, then assigning different people strictly to different products does not make much sense (remark: that might not only be true for your testers, but also for your devs). And even if not, if the products do not need specific user knowledge so anyone with a test plan can start testing the thing immediately, the option of shifting testers between products makes your team more flexible and helps to avoid bottlenecks.
Shifting people between different teams, however, comes always for the cost of more communication and organizational overhead - when a team can work completely on its own, it might be much more efficient as when when some of them have to work on different things in parallel. You will have to decide for yourself what works best in your case.