They do mean different things. You could have a smoothie or a coffee for breakfast and you would be 'having' not 'eating'. You might use them in the same way, but they don't mean the same thing, which is what is being taught.
It's because it does not mean to eat lunch. And it's a terrible sentence, so in the future you'll probably not see this sentence (after a few days). I think it's supposed to mean, have you got lunch (in the sense of a break at the time of day where people eat lunch).