DISTINCT COUNT with GROUP BY query is too slow despite indexes
You'll need no three separate indexes, but one combined (covering) index on  creation_date, zone, vessel_imo (in this column order)

I don't know, how exactly MySQL works on this point, but it could help, when you would group by creation_date instead of the (calculated) date. On the other hand, when creation date contains the time and you do not output the time, then you have to group by by the (calculated) date.