Dan, i agree with Lorenz and Erica’s explanations.
In Spanish is “tengo hambre” , which means literally “I have hunger”.
Something similar happens with “Tengo 20 años” , literally meaning “I have 20 years” which is incorrect , so the translation in English would be “I am 20 years old”.