The main difference is that annotations are meant to be notes, or sketches for reference only. There is no way to render them and cannot be animated.
Grease pencil objects are renderable, and can be animated. They are designed as a "hand drawn" animation tool in a 3D environment.