Hi,
is there a reason for dynamic sql to not use statistics.
Obviously no. Any execution of query (dynamic or static) is done after the server check the statistics and build Execution Plan.
There are different parameters that impact the Execution Plan which the server build and/or choose
You should really provide DDL and the query which you use at least, so we will have understanding of your table(s) structure. This discussion is not useful without it in my opinion
what could be the reason stats needing update for the query to perform
Usually there is no need to update the statistics for each execution, and it is not done by the server for each query that you execute. Updating the statistics can impact the performance since the server will create new execution plan based on the new statistics. But as Erland said you can simply told the server to create the Execution Plan again by using sp_recompile (test if you really need to update the statistics manually or simply recompile)