If you use return "vista";
the server will make a forward to the view. If you use return "redirect:vista";
the server will perform a redirect to the url associated with the view. With this in mind, your question translates into what differences there are between a forward and a redirect. These concepts are not associated with Spring but with the development of Web applications in Java.
Forward
Your request will return a response with code 200, 201 or another, for example 500 if an error occurs during the attention of the request. In this case, the content of the response will be the content of your view, that is, your JSP. The benefits are that the attributes placed in the request scope can be reused for use in the rendering of the view. That is, by using Forward you can do this:
Code in the controller:
public String ejecutaPost(Model model) {
model.add("saludo", "hola mundo!");
return "vista";
}
Code in the view (usually JSP):
<p>El servidor manda un saludo: ${saludo}</p>
Redirect
Your request will return a response with HTTP code 300 indicating that the client (the browser) has to make a new request to another url of the server (or perhaps from an external server). The server will receive this request and will attend to it.
In this case, the attributes placed at the request level can not be exploited because a new request-response cycle is generated towards the server.