According to the Silverstripe documentation:
Using the create() method provides chainability, which can add elegance and brevity to your code, e.g. Player::create()->write(). More importantly, however, it will look up the class in the Injector so that the class can be overriden by dependency injection.
Can somebody explain the "it will look up the class in the Injector so that the class can be overridden by dependency injection" part?