Unfortunately the term is offensive, as many perceptive individuals can pick up on.
There is a Hebrew word "goi" that means nation, but the modern term "goy" comes from Yiddish.
From The American Heritage® Dictionary of the English Language: Fourth Edition. 2000.
NOUN: Inflected forms: pl. goy·im (goim) or goys
Offensive Used as a disparaging term for one who is not a Jew.
ETYMOLOGY: Yiddish, from Hebrew gôy, Jew ignorant of the Jewish religion, non-Jew. See gwy in Appendix II.
Actually, to be more accuate I should have said "...the term may be offensive...".