Fast and precise control over a character in 3D environment.
The mouse is the most precise, it is better than a joystick, a joystick can get pretty close, but it takes much more practice, however, the mouse is operated by your whole hand while the joystick only assigns to one thumb( plus one click button), I usually use inverted aim and think of my stick as my characters head, if it presses forward my char looks down, pull the stick back and he looks up, just like a head attached to the neck.
But I can see ppl prefering the mouse, however, the keyboard is far from precise. sure there are more buttons to assign to hotkeys, but you also use far more fingers occupied with just moving the character back and forth and sideways, instead of just again only one thumb(the other thumb) on a controller(and that thumb also is used for another click button. With a movement stick on a controller you have endless "stages" of speed and acceleration for your character, if you only want to move a head one inch that is possible, with a keyboard you'll have to tap the button and it will either be a burts of full speed walking or toggled running forward, you dont really control the distance you are moving as precise as with a controller, usually it isnt a big deal, but if you are in an area where you'll need to watch it where you put your feet, it's easy to fall down or step in the wrong spot while playing with a keyboard, and you cant go snail speed if needed.
To me the keyboard is inferior in precision and pure efficiency, yes there are more buttons but I dont really need more buttons personally, my two thumbs controls all movement alone and covers two more actions with each click buttons on those sticks, and I can easily acces 4(6) more buttons and a 8 direction action plus click(9) control wheel with those thumbs, that leaves my other 4 fingers handling atleast one button each, like the triggers and such, which are also pressure sensitive, unlike the mouse buttons.
From what I can think of that gives me total movement control with two thumbs, and 19(21 actually) "click" buttons with a single action/function each without toggling anything.
Controlling your character from a keyboard takes atleast three fingers just for movement, and then you cant use those buttons for anything else, like jump or crouch, so its leaving you with two other fingers free on the keyboard, since your other hand is located on your mouse, and normally when using all those "extra" keys on the keyboard you will have to halt your characters movement in one way or another to move those fingers to press whatever other buttons you will need to use.
I used to play with mouse and keyboard and PC only, then I bought a xbox first, then a 360 and it took a long time to get equally good with a controller, and it is harder, but in the end it is much more efficient and enjoyable for gaming, the mouse is more precise, but it's a drag and click tool, it feels degrading in a way. Game controllers are produced for gaming and control only, mouse and keyboards are not, they can work pretty well, and once you get used to them its hard to consider another alternative, but they are not "ultimate and totally pro" like some seem to believe, if they were, then they'd come with consoles, and fighter pilots would use a mouse and keyboard like device to operate their aircrafts, not joysticks and attached buttons.