The term “Gringo” is used in Mexico to refer to Americans. Depending upon it’s use (and user) it may or may not be an insult.
My experience with the term in Mexico is that it is a convenient way to refer to Americans, much shorter that “Americano” or “Norte Americano”. Most of the time it’s use is not offensive or meant as a derogatory or demeaning remark.
Many Mexicans will not use the term around Americans thinking that it might offend. Even after establishing friendships when the term “Gringo” is used, often someone will apologize.
Where did the term originate? There are several stories, urban myths and rumours:
From Wikipedia: “A recurring false etymology for the derivation of gringo states that it originated during the Mexican-American War of 1846-48. It has been claimed that Gringo comes from “green coat” and was used in reference to the American soldiers and the green color of their uniforms. Yet another story, from Mexico, holds that Mexicans with knowledge of the English language used to write “greens go home” on street walls referring to the color of the uniforms of the invading army; subsequently, it became a common habitual action for the rest of the population to yell “green go” whenever U.S. soldiers passed by. This is an example of an invented explanation, because gringo was used in Spanish long before the war and during the Mexican-American War. Additionally, the U.S. Army did not use green uniforms at the time, but blue ones.
Another legend maintains that one of two songs – either “Green Grow the Lilacs” or “Green Grow the Rushes, O” – was popular at the time and that Mexicans heard the invading U.S. troops singing “Green grow…” and contracted this into gringo.
From the Snopes Urban Legends Reference Pages: “Although the first recorded use of “gringo” in English dates from 1849 (when John Woodhouse Audubon, the son of the famous nature artist, wrote that “We were hooted and shouted at as we passed through, and called ‘Gringoes’”), the word was known in Spanish well before the Mexican-American War. According to Rawson, the Diccionario Castellano of 1787 noted that in Malaga “foreigners who have a certain type of accent which keeps them from speaking Spanish easily and naturally” were referred to as gringos, and the same term was used in Madrid, particularly for the Irish.
The true origin of gringo is most likely that it came from griego, the Spanish word for “Greek.” In Spanish, as in English, something difficult or impossible to understand is referred to as being Greek: We say “It’s Greek to me,” just as in Spanish an incomprehensible person is said to hablar en griego (i.e., “speak in Greek”).”
According to the Real Academia Española (the ultimate reference for the Spanish language): 1. Adjective: Foreigner, especially one who speaks English, in general one who speaks a language other than Spanish. 2. Foreigner 3. In Mexico, Cuba, El Salvador, Honduras, and Nicaragua an American 4. In Bolivia, Honduras, Nicaragua and Peru a blond fair skinned person 5. Unintelligible language