It sounds tempting to go for the lowest possible fee, but just like very cheap items on eBay, it’s rarely worth it.
In order for a stake pool to generate the maximum rewards over time, you need a professional and sophisticated setup. You need to make sure that the pools are highly connected to the network, that the hardware is adequate, that the internet connection is optimal, that the software is configured correctly and that the pool software is updated frequently. You need to build redundancy and automation, to have multiple internet connections, to have UPS backup power for the hardware and protect against attacks. You need a high level of automation and monitoring, to always keep the pools running perfectly, and in case of any breakdown, have a backup server standing by, that will automatically take over.
The income from a 0% pool is simply not enough to cover the expense of the above mentioned setup. For this reason, the 0% pools do not have this kind of setup, but instead run a much simpler operation. This means that they will perform worse over time, and hence pay less rewards. If you do the math, a 0% pool will give you worse rewards, even though it looks better on paper.
You risk having the pool operator raise the fees after they’ve attracted enough stake, or having the pool simply shut down because it’s not profitable. You don’t want to constantly have to check if the pool is still at 0% fee and still running, and risk staking to a dead pool or suddenly paying a much higher fee.
Pools with 0% fee are not incentivised to perform their best. The operator only makes money from the first block each epoch, and he then has no incentive to keep the pools performing well. There is no reason for him to make sure the rewards are at the absolute max, since it means extra costs for him, but no extra income. A pool with 1% fee has a great incentive to make sure the pools are always at their very max performance, and is willing to invest in it.