To be clear, I created FakeItEasy, so I definitely won't say if one environment is better than another, what I can do is point out some differences and motivate why I created FakeItEasy. Functionally, there are no significant differences between Moq and FakeItEasy.
FakeItEasy does not have “Confirmed” or “Expectations”, however it does have statements, they are always clearly indicated at the very end of the test, I believe that this makes reading and understanding tests easier. It also helps beginners avoid multiple statements (where they will set expectations in many calls or mock objects).
I used to use Rhino Mocks, and I really liked it, especially after the AAA syntax was introduced. However, I liked the free Moq API. What I didn’t like with Moq was the “mock object”, where you should use mock.Object everywhere, I like the Rhino approach with the “natural” poppies better. Each instance looks and looks like a normal instance of a fake type. I wanted the best of both worlds, and also wanted to see what I can do with the syntax when I had absolutely free hands. Personally, I (obviously) think that I have created something good that blends in with the best of the world, but it's pretty easy when you stand on the shoulders of giants.
As already mentioned, one of the main differences is the terminology, FakeItEasy was first created to introduce TDD and mock newbies and worry about the differences between mocks and stubs in the front (as you would need in Rhino), in my opinion not very helpful.
I pay great attention to exception messages, it should be very easy to say what was once wrong in the test, just looking at the exception message.
FakeItEasy has some extensibility functions that other structures do not have, but they are not very well documented yet.
FakeItEasy (hopefully) is a little stronger in mocking classes that have constructor arguments, since it has a mechanism for determining which dummy values to use. You can even specify your own dummy value definitions by embedding the DummyDefinition (Of T) class in your test project, this will be automatically picked up by FakeItEasy.
The syntax is the obvious difference, which best of all depends on the taste.
I am sure that there are many other differences that I forgot about now (and, to be honest, I never used Moq in production, so my knowledge about this is limited), I think these are the most important differences, though.