Why we should use GetComponentInChildren only it if necessary?

Can someone name me few causes why we should avoid this method.

The manual only says that for the non generic version. It doesn’t say such thing for the generic version.

With that said, this may be prone to errors. It returns the first component it finds, it may not be the one you want if there are multiple in the hierarchy. It is probably also much slower than having a direct reference to the gameobject you want and calling GetComponent directly.