Maya.cmds VS pymel.core

Can someone describe to me when I should use maya.cmds and when
to use pymel.core ??

I would say there isn’t really a “should” case.
What I would say is that pymel provides a more expansive and pythonic API than the cmds module, though at a non-trivial performance cost in some situations.
What to prefer when is up to either the individual or better yet, the team (if you happen to be part of one), and should be pretty clearly laid out so that people don’t end up bickering over using one vs the other in a code review.

Now personally my preference is that if performance isn’t much of an issue, I’ll use pymel for the convivence factor. If I think there is a performance concern, say after profiling the code, or what have you, at that point I’ll decide if it needs to be converted into cmds, or use the python API. However our technical animation team at work has opted for the no-pymel-ever policy, which I completely understand because it side steps that grey area of “well it runs fast enough for me”.

Thanks Bob, that definitley sheds some light on the matter.