@PersistenceContext is a very specific annotation and it's saying "inject this field with a persistence context". You can't use it outside of a managed context.
@Inject on the other hand, is very generic. It says, "you should inject this field." It's not necessarily for a persistence context, but anything you want to define as injected.
This article (which is not exactly apples to apples of what you're asking) may shed more light on it for you.
If you want to go straight to the source of what @Inject is, you can read the spec here:
@Inject, identifies a point at which a dependency on a Java class or interface can be injected. The container then provides the needed resource. In this example, the Login bean specifies two injection points.