Unity is awesome.
From my short experience with Unity here's all the cons I can think of.
I'm also no where near being an expert, some might think these opinions are dumb, I probably will too as I improve.
There's to many pros so I'll just ignore that.
* Some Tutoruals are not that up to date.
Most tutorials are up to date with atleast version 5, and I'm only talking about Unity's (not other ones online) main tutorials so it's not to big of a problem.
* Pro version is expensive if you have low income, and it apparently has lots of nice features.
I don't have pro version so I'm not sure what features there are. However someone I was working with had pro for free on some student version. Maybe there's (or was) a way to get it for free.
I felt like I could do anything with the free version anyway, pro is not mandatory, specially for beginner's.
* I've seen a lot cons from the past complaining about the terrain engine. Maybe it's not so good, it's probably improved since then. Just thought I'd put this out there encase it's not improved (I don't really know).
* I'm an optimization freak so this isn't a problem for me but optimizations on big games is a MUST. Lots of beginners fall for some performance heavy mistakes with the simplicity of UnityEngine.
* Monodevelop can be a pain.
Yeah, idk if all IDE's do the same, but I've had some annoying experience with Monodevelop. Idk why I haven't switched to VisualStudio, guess I'm lazy.
Sometimes when I have a getter for a variable I accidentally call the auto-getter method, causing infinite recursion and a game freeze. This has only happened to me twice but my problem is that Monodevelop doesn't warn you for such a thing. I'm also into Java, still learning how C# does the auto accessor thing. This is more of a me problem though.
* Unity uses Quaternions.
This is really more of a pro, but the con is actually that you have to learn what they are and work with them beside euler angles. (It's great once you know it!). This is more of a beginner problem xD.