Because the period specified (from 1230 to 1300 hr) is continuous period for employees to have lunch. In other words, it is the future continuous scene.
So, during that half an hour, he'll be having lunch (future continuous). Option d is also fine as you are pretty sure that he will have started his lunch.
Logically, the option c is also possible. Because in that entire paragraph, it's not mentioned that when Josh finishes his lunch. Say, he starts by 12;35 and finishes by 12;44 pm. You can certainly say that at 12;45 pm, he'll have finished his lunch.
Why 'he'll have lunch' does not fit? Because that is simple future and the time specified is in between 1230 to 1300 hr which requires continuity. Had it been 12;30 pm, "he'll have lunch" would have been okay.
Is this an exercise for the tenses in English or some logic? Because if we describe someone's routine that happens daily, we use present tense.
He goes to office by 10;30 and comes back by 6;30. He takes his lunch at 1400 hr; and so...