При создании объекта — вызывается функция конструктор, у которой this привязана к этому объекту.
Прототип (он же свойство .__proto__) этого, ново-созданного, объекта — объект, который является свойством .prototype у функции конструктора.
Когда делаем такого рода наследование, мы не можем тупо присвоить одному свойству другое, т.к. объект передается по ссылке и мы в итоге сделаем еще одну ссылку на тот-же объект. И при изменении Rabbit.prototype будет меняться Animal.prototype. А нам такого счастья не надо, нам надо чтобы Rabbit.prototype.jump было только свойством(в цепочке прототипов) объектов Rabbit, потому нам надо привязать его к другому(новому) объекту, для этого нам и нужен Object.create().
+ мы в функции конструкторе Rabbit можем не дублировать создание свойств у Animal, а просто его вызвать с привязкой к текущему объекту: Animal.call(this, name)