Agreed. They are different. If the arrangement is not fixed, we can use either form.
A: Got any plans for the weekend?
B: Well, I'm going to have dinner with my parents tonight, and then go camping on Saturday.
A: There's a really cool party on tonight.
B: Is there? Hmm. Maybe I'll call my parents and tell them I'll have dinner with them Sunday night instead.
However, if it's fixed, we use the present continuous.
A: "Do you want to come to a really cool party tonight?"
B: [disappointed]. "I can't. I'm having dinner with my parents tonight. Sorry."
This means that that dinner with the parents is definite. A native speaker would not use a 'going to' construction, because the speaker knows that he or she cannot get out of the dinner arrangement. If the arrangement cannot be changed, the present continuous is the only natural option.
This is not a question of time or simplicity. Remember that English is a stress-timed language, and it actually takes pretty well the same time to say 'I'm going to have dinner' and it does to say 'I'm having dinner'. In natural native-speaker speech, the first words of the former are merged into something like 'aimgnuhv', a sequence of sounds which is barely a millisecond longer than 'aimhavin'. Our choice of verb form depends on our attitude towards the certainty of the event, not the time or effort it takes to use a particular construction.