Потому, что при каждом создании объекта через конструктор, создаются одинаковые методы для каждого созданного экземпляра:
function MyClass(){
this.method = function(){}; // Ещё один новый метод
}
Если методы определять в прототипе, все созданные объекты будут использовать одну и ту же функцию:
function MyClass(){}
MyClass.prototype.method = function(){}; // Один на всех
Это сильно снижает расход памяти.