Existe diferença ou erro entre as frases:
- Let's have dinner tonight.
- Let's dinner tonight.
- Let's go dinner tonight
- Let's go for dinner tonight.
Existe diferença ou erro entre as frases:
Olá Yuri,
"Dinner" é o substantivo e "to have dinner" é o verbo.
O mesmo vale para o almoço. O substantivo é "lunch" e o verbo é "to have lunch".
Se você disser "Let's lunch." é como dizer em português "Vamos almoço". Entende? Não faz muito sentido. O mesmo vale para "Let's dinner.". Por isso, o correto é "Let's have lunch." ou "Let's have dinner.".
A sua última frase ("Let's go for dinner") também está correta :)
Abraços!