Yes that's right.
「地平線」 is the horizon on land (the land and the sky seem to be connected).
「水平線」 is the horizon on the sea, or at least when the sea is in front of you (the sea and the sky seem to be connected).
Regarding your question "Can a ship appear on a (land) horizon?", there is an important point to state, and that is「地平線」 can be used anytime to describe a horizon even if it was a "Sea horizon", but the opposite isn't true. Therefore, 「地平線」 may have been used in 「地平線上に一隻の船が見えてきた。」to replace 「水平線」, or that the boat actually appeared in a land horizon (coming from a distant port for example).