Looking at the code you posted, correct, dynamic SQL was not required. I have found numerous instances of improper use of dynamic SQL by developers with my current employer. It is a tool, and it seems when it is used it is because noone really looked at the SQL code that was being written. When you have a hammer, everything looks like a nail.
Just one other thing, when writing dynamic SQL you should only use it for that part of the code that truly needs to be dynamic. Use sp_executesql to run the dynamic SQL and pass in the data as parameters that are used in join and where conditions. As this data changes when used in building dynamic SQL you fail to reuse previous plans.