Have (an) ice cream é uma collocation que significa tomar sorvete.
Em inglês o verbo have é constantemente utilizado em expressões relacionadas a alimentação, ou seja, pode-se usar have para dizer que você vai comer ou beber algo.
I want to have a soda.
Eu quero beber um refrigerante.
She had pizza last night.
Ela comeu pizza na noite passada.
Isso significa que dizer eat ice cream está errado? Não, não está, e inclusive pode ser usado. No entanto, é muito mais comum entre os falantes nativos da língua utilizar have em vez de eat/drink.
The best thing in summer is having an ice cream for breakfast without feeling guilty.
O melhor do verão é tomar sorvete no café da manhã sem sentir culpa.