A forward is performed server side and a redirect is performed client side.
When you forward something, the server forwards the request to another server/page and allows them to handle the request. This can be totally transparent as far as the client is concerned and even mask the URL. If you forward example.com to example.net then the end user will still see example.com in the address bar whilst actually browsing example.net
When you redirect, you issue a response back to the client telling them to go elsewhere. If the user navigates to example.com and you redirect them to example.net, you generally send a 30x response with the address you want them to go to. The user's browser then makes a second request to example.net and navigates there manually.