Requirement annotation is a Plexus one for Components. It means that this component isn't allowed to be null, so an implementation must exist in the context. This get validated before executing the mojo.
required=true on a Parameter means that the parameter is required. This is exported in the metadata, and it should show an error while validating the pom file (earlier) or even in tools that use metadata to compute completion and validation.