Honestly, with layover times like that, I would take the choice of whichever has an affordable hotel and easy transport to and from your gate. Work that together with the timing of the flight from Dubrovnik and that would be my choice. All three cities make it easy to get from the airport to a hotel in the city and back. But I haven’t checked out hotels AT the airport in any of these.
If going into the city is your choice, I’d want to find a hotel right by the train station so you don’t need a second mode of transportation to get back the following morning. I just stayed overnight at the Ibis off Grand Place in Brussels and that would work. Zurich is quick and easy to get to the Main train station, but I don’t know about a close hotel.
And if everything else is equal, I’d choose the one arriving at 18:30.