He got essentially the same number of votes that Cruz got in 2016 in Iowa. It’s just the extraordinarily low runout that makes this look so huge.
Trump got 10% more votes than Cruz in 2016, on 65,000 fewer total voters. Weather did depress turnout, but, compared to polling, no candidate was disproportianately hurt except maybe Trump.