No, it isn’t derogatory - I use it to describe myself when asked if I have Spanish antecedents - I say, no, soy gringa pura - and it doesn’t refer exclusively to Americans. It means white non-Latin American.
grin·go (grngo)
n. pl. grin·gos Offensive Slang
Used as a disparaging term for a foreigner in Latin America, especially an American or English person.