Not sure if it's version thing (11.0.1.0) but I couldn't get the lables using the code shown - I had to Thread the rule:
ListPlot[Thread[plotCoordinates[[All, 2]] -> (#["Name"] & /@ cities)],
Frame -> {False, True},
PlotLabel -> "Mean Temperature of NZ Cities on April 25th",
FrameLabel -> {"Celcius"}, PlotTheme -> "Detailed",
GridLines -> {{}, {50, 65}}]