Because in this case the sentence would be "Sie hat Hunger" instead of "Sie haben Hunger".
We must pay attention to the ending of the verb conjugation in order to distinguish "sie" as meaning "she" or meaning "they" or formal "you" (and the latter will always be "Sie" with the initial letter capitalized, regardless of its position in the sentence).
Yes, haben means "to have", but Hunger haben is "to be hungry".
You cannot translate word by word, because German is not simply a code for English. It has different expressions and different grammar, so often you have to take multiple words at once and translate those words together.
As an example, when someone says "thank you", some people say "you are welcome" in response and some people say "don't mention it". But that's not because "welcome" means "it" or because "are" means "mention" -- you have to translate the entire expression.
Similarly here, you can't translate word for word because "they have hunger" is not how you would say it in English -- you would say "they are hungry" instead. You have to take the entire expression haben Hunger and translate it to "are hungry".