If a user runs a piece of dynamic SQL with EXEC(), the ObjectName column will display "Dynamic SQL" for SP:StmtStarting, SP:StmtCompleted and the ShowPlan events. However, if the dynamic SQL is invoked from sp_executesql, the column is NULL for StmtStarting/Completed, whereas it still is "Dynamic SQL" for the Showplan events.
I realise that it can be difficult to distinquish between SQL statements injected by sp_executesql, and other SQL statements that comes from within the engine, like the SELECT statment queries, and the repro includes such an example. The Showplan event have Dynamic SQL here as well.
The reason this matter is that sqltrace (http://www.sommarskog.se/sqlutil/sqltrace.html) wants to map the Showplan event to the StmtCompleted event.