My favorite English book is the dictionary.... I do own my share of them, and I have carried them too...!! (In English and in Spanish).
Honestly, I never thought about checking the meaning of the word in any of them cause I thought it wouldn´t be there. It surprises me to see that "The American Heritage College Dictionary" says it refers to the "griego" = greek in Spanish...
I can tell you what the vox populi is and what we believe that caused the starting of that name that we only use for americans and not in an offensive way, but in a very common way. We do know americans take it offensive sometimes, so some people like me, don´t call them that. At least, not in front of them... when you talk about them, it is easier to say that, than the whoooole word "norteamericanos"... see? ;-)
The story the majority of mexicans know is: when the mexicans and americans were fighting for the borders, the mexican army would hear the americans say to themselves: "green goes, green goes", referring to the mexicans running, but the mexicans thought the americans were calling each other.... so they heard "gringos".
And that is my story!
Believe me or not..... it doesn´t really matter, I´m just telling the common story...