Forward will use the same request/response and give them to the component indicated in your forward message. It is just a pass off mechanism. It will not update the url indicator on the browser, however, to the target of your forward message.
sendRedirect goes back to the browser (read more expensive network traffic), gets a new request/response object set, and updates the http header information so that the browser reflects the target of the sendRedirect.
Decisions should be made on an individual basis based on the above info.