Unreal is a "AAA" engine originally meant for large teams. It has much better level design tools and collaboration features, but all programming must be done in C++ which is fragile and can break the whole engine. Lighter scripting can be done with Blueprints which is good for designers making levels interactive. Unreal is a good choice if you are aiming to make a serious production with a team making large detailed levels.
The Unity Asset Store has many more plugins and it's easier to put together a sandbox type game with lots of features, since its managed code design makes it easier to drop in scripts other people have made. There are level design tool plugins available that mimic what Unreal does, but they aren't as polished and collaboration is harder.
The major downside I see to blueprints is a lack of source control. This is a pretty massive downside, and not something a professional team can forgo. But if you are looking to learn and understand the engine as a solo person Blueprints are a great place to start.
It shows in the fact that Unity uses C# instead of C++, which has less historical baggage and is a bit safer, especially for junior devs I think.
Unreal seems to be for projects that need the raw power of C++, but don't want to go into doing their own thing.
I for one never met a Unreal dev, only a mass of Unity devs and the ones that do their own engine.
Not only are there really, really good official video tutorials to get you up-and-running, but also while UE4 is definitely a complex piece of software, you can get started pretty easily just by knowing a few things. I think that having Blueprints is a huge win, since they allow you to very easily program without having to learn new language syntax, are easy to read, and the visual debugging/real-time flow chart capabilities are very cool.
After only a month or so (of inconsistent, hour-or-two-in-evenings hobby time), I feel pretty comfortable with the engine and need a lot less handholding than I expected to need at this point.
The sources of differences are:
Unity's primary audience has been hobbyists. Unreal's has been AAA devs. Unity doesn't ship games themselves, so they tend to focus on flashy, marketing-friendly features. Epic used to ship FPSs at least (they've slowed down in that area). Unity's huge audience pushes them into a large commitment to a ton of legacy architecture dating back to the web plugin. UE is on Ver4 (whereas Ver1 & 2 might predate Unity).
A big one is that Unity uses C# vs UE's C++. Garbage collection is great in the beginning. But, when you go to ship it becomes the enemy. You end up needing to structure everything to have no allocations at run time to avoid GC hitches. So, you start out coding like a modern app dev and end up coding like a classic embedded C dev. Except you aren't using C. You are using a language that tries to sneak allocations past you all over the place.
If you are a hobbyist, Unity is really great. It's great for experimenting, prototyping, and for remaking your own take on that game from 10+ years ago. If you want to make a modern game, be prepared to fight and rewrite a lot of the core of Unity. The editor is great though!
Unreal, however, is a lot more complex and challenging to get started. And, it's not all roses when it comes to shipping either. UE tends to favor a heavyweight setup cost in order to make using high-end features a bit cheaper. That's not great if you don't actually want to pay for those features. UE is technically on mobile, but only because high-end mobile hardware is catching up to what UE requires. Getting UE to run 60fps has been a challenge forever. The Mortal Kombat team has at least one GDC talk about the extensive surgery they had to perform because their management dictated that they use UE.
I guess there is also the issue of licensing costs which are substantial, but that requires actually shipping for that to matter :)
There are more tutorials out there for Unity but a lot of them are written by people who don't have much more of an idea of what they doing then you do.
Less experienced developers might benefit from using neither of these things at first, start with maybe basic 2d stuff using just SDL2, or maybe a framework like monogame.
This way you can learn a bit about game programming, fundamentally, without having to learn how to use the engines and its editors and so on.
I'm a big fan of making everything by "scratch" (using libraries like SDL2 or SFML for 2D), but when it comes to 3D games I wouldn't think twice and dive straight into Unity; even if I'm not a huge fan of the environment I know it's the easiest/best tool available.
You can maybe use something like Irrlicht (http://irrlicht.sourceforge.net/) but I don't think that's still going to be easier in any way than Unity.