"Better" is subjective. Given the aim of your class is to teach you OOP concepts the lecturer's code is "better" as it better fits what he is trying to teach you. His code has a boat object that is also a linked list. All of the code is within that class, the boat not only has properties but it has the concept of being a list, ie the boat also knows what is next in the list. On the other hand your code is two classes. You have the Queue which is a generic implementation of a list, and then the boat and the boat as no idea it is a list, the boat is unaware of other boats.
In the "real world" we do tend to separate objects from their storage mechanism so you'd use List<Boat>, but you're not in the real world writing real code, you're in school learning concepts of OOP, and the lecturer's code is object-orientated and yours isn't.
Also this
Boat _result = new MarinaBerthClassLibrary.Boat();
should just be
Boat _result;
You're needlessly creating an instance of Boat in your code.