You already pointed it out, and Green has a good review of other pros and cons. However, I would like to insist about the military strategical advantage offered by such placements.
The two examples you have provided are pretty clear: back in their respective times, people were living in tribes, which were hard to protect from other tribes. I'll focus on the case of Venice, as I am more familiar with it.
Back in those days you had three ways to protect yourselves: have a strong army (like the Roman Empire, up to some point) or allies, or build in some defensive protection. Even that was not that easy, as you had to man your defences; and finally be ready to run.
A better documented illustration can be seen in the 100-Years' War, some "free companies" were plundering the (now) territory of France. Cities started to surround themselves with walls. Previous small castle expanded to authorized the neighbouring population to come in in case of attacks. In the country-side, they had a strategy to run and hide. I reckon that it is not easy, but a visit to a village like this one gives a good impression. If such a free company were to come in on the villagers, you could expect murders, torture, rapes, etc. So people had very little so that once those companies were spotted, they could run away, hide in the forest or the nearest castle. Sure, they would loose food, homes, etc. But at least be safe.
Now the population of Venice, they had been protected by the Romans, but their military might were falling apart quite fast. Building walls take time, especially if the same people have to provide some food. And who to man your walls? Being in the middle of a lake gives you a very good natural defence. Indeed, your opponents have to either bring along ships, or build them on the spot. Both giving you enough time to effectively run away, or counter-attack (or harass). Furthermore you have a lot of directions to run away and you clearly see your opponents coming.
I disagree with Green on the "ease of raiding" part. Pirates are forced to come on ships, and you have more ships and see them coming. For Tenochtitlan, ships could not be sailing for far. For Venice, the high-grounds of the laguna, protected the city. When pirates were actually organised enough to try to raid the city by sea, Venice was already all-too-mighty to risk it.
Now you did not mention it, but Paris was also built starting from the Île de la Cité, which is an island in the middle of the Seine River. They also used the same protection.
But why, then, wasn't there more people doing it? Well you need to be able to sustain yourself in the middle of the lake. As Tenochtitlan shows with their floating gardens, you really need to procure enough food for your population. If it's easy for you to see your enemies coming, it's as easy for them to see you leaving.