En mi opinión, si es ofensiva. Por un lado, la palabra "gringo" nace al contraer el sonido de la expresión "green go", utilizada para ahuyentar o rechazar de algún lugar a personas de los Estados Unidos.
En mi país generalmente se refiere a un gringo de manera despectiva, queriendo mostrar a aquella persona como un extranjero de Estados Unidos que llega al país sin apreciar la cultura local, y que por el contrario desprecia a las personas nativas. Esto me parece irónico, ya que aunque es un término medianamente ofensivo, está basado en un estereotipo.
En otros casos, cuando las personas no quieren ser ofensivas, utilizan la palabra "americano", "estadounidense" o simplemente "extranjero".