It has so much built-in. Stuff that you couldn't imagine!
There was a competition online, once, called "upgoat or downgoat". The challenge was to write a program that could, given an image, determine if it was a right-side-up image of a goat, or one that had been flipped vertical -- to get 80% accuracy, and do it in as short a program possible. Most of the solutions were clever such that, for instance, a typical picture of a goat had lots of gradients that got darker as they went down, so identifying gradients could tell you the orientation.
The Mathematica solution won for shortest program. How did it work? Well, the author found out that Mathematica had a *built-in function for identifying goats*. So it fed the function the original image and the image flipped, and the one that had a higher confidence was returned as the answer.
In addition to the huge library available, it has very thorough documentation.
There's not much I dislike! There are a few "hidden" functions and options that aren't documented anywhere, and mostly known by handed-down folklore from other power-users. But those are pretty rare to need, really only when you're doing something very specific.
*Learn the language!*
Mathematica is very tempting in that you can just use it like a calculator. You can type in "3 * (5^2+1)" and get out "78". But you should take an hour to learn the actual language and syntax properly. Some people give Mathematica flac for having inscrutable errors: this is only true if you never learned it properly. Take that one hour, and then it will be smooth sailing.
I've used it as a programming language to do simulations of quantum systems, optimize semi-definite programs, and even prove results about Quantum Games. Also, to make some very pretty plots of experimental data.