Theory #1 and also the one that started me on this path in the first place:
The ship may symbolize a mother who takes care of a baby inside her womb. When we board a ship, we are all inside her as she takes care of us until we are delivered safely to our next port.
Ships are called she because they are traditionally given a woman's name. Usually a woman close to the captains heart, like a mother or wife. We found this particularly true of the lobster boats we saw in Maine. They were adorned with two female names, like Mary Rose or Lori Ellen.
It has also been said that ships were once dedicated to goddesses, and later to important mortal women. Even though male captains and sailors historically embellished their ships with a female figure (often topless), actual women on board were considered very bad luck at sea.
Ships are referred to in the feminine because that's the gender for the word, "ship" or "navis" in Latin. So the pronoun is always "she".
Perhaps there is a simpler explanation in reference to ships, cars, boats and the like....everyone loves to baby them so much. They love to keep them running in good shape as well as clean, shiny and pretty.
"How do you like my sports car? Isn't she pretty?"
The men were 'married to the sea' for their love of the ocean. As a token of their love and a reminder of the ones left behind for months and sometimes years, they named their ships or sailing vessels after the women in their lives.
So you can see, there are quite a few explanations for calling a ship a she. It is also important to note that this custom is most popular in the US and England. In some parts of the world, like Russia, ships are actually referred to as "he". Go figure. I guess the question can't really be answered but will always remain a source of good conversation.