One possible explanation, assuming identical parameter values, is that a plan recompile occurred. The execution from Profiler was in one plan and the execution from SSMS was in a different plan. However, statistics io measures just the behavior of the query itself. It doesn't measure additional behaviors like reads to system tables to look up statistics, find a query plan, stuff like that. So generally, you'll find that Profiler is equal to, or greater than, statistics io. If it's less than statistics io, something weird is going on, call support.