Sort legend

I do not use pygmt. But I think that maybe a workaround would be to plot the cruises in the order that you want to plot in the legend. And then add an extra line so the cruise that you want (3?) appears on top.

fig.plot(cruise1_lon, cruise1_lat,label='"Cruise 1"',pen=('black',pen))
fig.plot(cruise2_lon, cruise2_lat,label='"Cruise 2"',pen=('green',pen))
fig.plot(cruise3_lon, cruise3_lat,label='"Cruise 3"',pen=('yellow',pen))
fig.plot(cruise4_lon, cruise4_lat,label='"Cruise 4"',pen=('purple',pen)) # most recent one

fig.plot(cruise3_lon, cruise3_lat,',pen=('yellow',pen))  # plot cruise 3 again but without label.