I'm watching a cooking show and the host repeats the old legend I've heard before about how the Aztec people chose the location of Tenochtitlán because of a a sign from the gods in the form of an eagle eating a serpent while perched on a cactus. What are the real reasons that they built their capital in the middle of the lake?
The full founding legend of Tenochtitlan goes like this:
During the years the spent wandering in the chichimec lands north of the valley of Mexico, the Mexica abandoned a troublesome witch, Malinalxochitl. She would found the city of Malinalco and have a son named Copil. Remember this, because it comes up later.
The Mexica, having abandoned the witch, continued to follow the urgings of their god, Huitzilopochtli, to travel south into the Valley. There, they settled at a place called Chapultepec on the western shores of Lake Texcoco. They were a disruptive presence though, having been the last of several groups to immigrate into the Valley from the wilder north.
The groups that had already settled in the Valley banded together to throw out the Mexica. According to the legend, they were led by Copil, seeking vengeance for his mother's abandonment. During the fighting to drive off the Mexica, however, Copil was killed and his heart thrown into the lake. From his heart a nopal cactus sprouted. Remember this, because it comes up later.
The Mexica were, however, ultimately defeated and had to flee from Chapultepec into the marshes of Lake Texcoco. A city on the eastern shores of the lake, Culhuacan, took pity on them and allowed them to settle nearby. The spot the Mexica were given was called Tizapan, and was well known for being a rocky barren place filled with snakes. Instead of being killed by the snakes or starving among the rocks, the Mexica thrived and become part of the community of Culhuacan. To symbolize this union of people, the Mexica asked the ruler of Culhuacan for one of his daughters, which he granted.
The request for a daughter was not, as the ruler thought, a political marriage, but was a sacrifice. Arriving at the Mexica settlement for what he thought was a marriage, the ruler was confronted by a Mexica priest, wearing the flayed skin of his daughter. Understandably shocked, he assembled his army and the Mexica were once again driven into the mud and reeds of Lake Texcoco.
The tattered remnants of the Mexica eventually ended up on a small island, whereupon they saw an eagle eating a snake while perched on a nopal cactus, the same cactus that had sprouted from Copil's heart. Taking this as a sign from Huitzilopochtli, the Mexica settled on the island. Thus the city of Tenochtitlan was founded.
That's the legend anyway. The more concrete reason for Tenochtitlan being founded in that location was because it was one of the few areas not already claimed. From about 1000-1200 CE, the western and southwestern parts of North America experienced increasing aridity and droughts. This acted as a pump to press previously nomadic or semi-nomadic groups out of the wilds of northern Mexico in the more fertile areas, specifically the Lake Texcoco basin. The Mexica, entering the basin in the 1200s, were the last of the Nahuatl-speaking groups to make this transition from nomadism to settled agrarian lifestyle.
We see the result of this late arrival in the founding legend, where the Mexica are constantly at the mercy of the already settled groups. The founding of Tenochtitlan on an island in the middle of the lake was really the result of that particular piece of land being a small and insignificant area without strong claims on it already. Though it was technically under the dominion of the Tepanecs -- to whom the Mexica would pay tribute for roughly a century, the island had no pre-existing settlements or prevailing interests for the Mexica to disrupt.
Mexico City, which is Tenochtitlan, was essentially founded by refugees settling on an ignored plot of land.
This is a good question. There are two reasons provided by Aztec sources. One they were told that they would find their new homeland when they saw the eagle perched on the catus (the snake bit was a 19th c. invention based on a bad translation of from Nahuatl, the Aztec language). Two, when they entered the Basin of Mexico they were still a savage, hunter-gather type civilization. They were befriended by the local established city-state of Culhuacan. When a noble daughter of that community was offered in a marriage alliance, their patron god told them to sacrifice her, which they did. In response, the Culhuaca exiled them from their territory and so they took up residence on islands in the middle of the lake.
Other than those sources, we have no historical account that can explain why they settled there.