This seems more a question for /r/linguistics, but English lost grammatical gender, and referring to ships as feminine is a more recent invention. In other Germanic languages, ships and boats are grammatically neuter gendered.