Why vmware recommends to run commands directly in esxi shell only in troubleshooting situations or at the request of vmware technical support team?
Because those commands are:
Look over this very forum. Nearly every thread that starts with "I'm trying to run xxx in the shell" involves a user attempting to do something they should not be doing - installing generic Linux drivers or software, attempting to compile apps, trying to modify config files directly..
If you can do it using the supported APIs then you know it's generally an appropriate thing to do.
If you need the shell, there's a good chance you shouldn't be doing it.