Both the zones are used for name resolution but when we are used stub and when we are used forwarder. I am trying to say as small as possible.
Ex: We need a trust between domain A and domain B and am a system admin of domain A and in future any changes happen in domain B, we may not get those update , here best is stub, why? Because stub is automated process and the changes will update automatically.
Forwarder is a manual process. Assume admin of domain B has changed the DNS server but I don’t have the update, here problem comes-up.

If you are aware of the activity of domain B then you can use the forwarder.

N.B: You can not create stub zone and forwarder together with the same zone name...

Secondary Zone

One thing should be remember for secondary zone that secondary zone is not replicated any more.

N.B: For creating a  trust always try to go with stub zone.