This prefix is what makes this verb a perfective one. It is still an infinitive - in Slavic languages the imperfective and perfective verbs are different words, each with their own infinitives and other forms. The perfective "zjeść" is used here because this person needs to eat something at the moment, i.e. they are hungry right now, while "jeść" would most probably mean that this person needs to eat generally, which is true for all living creatures and pretty obvious.
While what you wrote is quite true, the exact meaning of the z- prefix is 'to eat completely'.
"jadłem kanapkę" - "I was eating a sandwich" (and maybe in the middle of this, someone interrupted me so I had to leave the rest on the platter. or maybe it doesn't matter whether I ate the whole sandwich or not).
"zjadłem kanapkę" - "I ate the sandwich". (the whole sandwich)
"Jutro na kolację zjem pizzę" is definitely not about 'this moment', but it's a perfectly valid sentence.
Yes, thank you, I agree that this is the exact meaning. I was just talking about why it is used in this very sentence, where it's not really clear that the person wants to eat something completely. So I tried to imagine what would this exact sentence mean without "z-", and I immediately felt that this sense of "right now" would be lost. I agree that this is not where the difference in meaning usually lies, so it might be not that substantial.
I would also like to mention that you can also say "Chcę jeść" (I want to eat) when you're hungry, but as soon as you add "coś", you say "Chcę coś zjeść", because then this action of eating stops being general and is instead applied, although only from the point of grammar, to something specific, and as Jellei correctly pointed out, you would be talking about eating it completely, because that's what usually happens with specific food - you just don't say things like "I want to be eating a sandwich".
This leads to one more difference between the verbs: "jeść" can be used alone, while "zjeść" always requires an object - even if it is something as vague as "coś". I guess this is true for most, if not all, perfective verbs.
(I'm not a native Polish speaker, but these verbs have the exact same meaning in my native Russian)
Is there any difference between "I need something to eat" and "I need to eat something" in English?
Grammatically, no, but you'd generally only say the latter if you're so hungry that it's starting to have a negative physical effect on you. The former seems a bit more common and versatile (IE, interchangeable with "I want something to eat", "I'm looking for somewhere to eat", etc etc).
In Polish "coś" shouldn't be used at the end of the sentence so you should say: "Muszę coś zjeść".