I'm not sure why people think their choices are a view or a stored procedure.
Views serve many purposes. If you are using the same base query for different reports, or want to simplify schema, implement some type of security, etc., then a view may make sense. Views are NOT however implemented for performance reasons (let's leave indexed views out of this for a second). A standard view is never going to speed up a query, it just makes it more convenient to reference the view rather than repeat all of the joins etc. that make up the view.
Your report should be calling a stored procedure - this modularizes the query code, and provides a central place to modify the code. Whether that stored procedure references a view or not is a different question.