Deep inheritance trees, on the other hand, are difficult to use beautifully but yet are often portrayed as a first class design pattern which often ends up in mess. A priori designed inheritance trees without experience how such designs evolve in production are probably one of the biggest issues, I would imagine.
I think deep inheritance is an expert design tool that is easy to get wrong... therefore I kinda agree that the first advice "don't use it" is not misplaced but should be probably followed with "unless you really know you need it".
Since Javascript is a dynamic language it is easy for me to imagine deep inheritance trees will lead there to a terrible mess quickly since there is no static type system to enforce the design constraints.
So, put more simply, don't make an Animal class if you have a Cow and a Tree, or you might end up treating legs and trunks the same. It should be no surprise, then, that bad things happen.
This is not the fault of the concept of inheritance, it is a fault in your thought process and the resulting design.
So please, next time you say that it's impossible to build anything big and reliable with this design because YOU or people you know ended up in a mess, think again whether the problem really comes from the language, or the people.