Now that I’ve seen it, Ackermann definitely went too early and was dying at the end.
Perhaps overconfidence, thinking that in the absence of his high level peers that he could just blow everyone away. Conversely, perhaps he’s feeling a bit of pressure and was trying a bit too hard to force a win. He has after all never really been under any pressure to perform before: when he went on his hot streak in the second half of last season, he was a development project, the third and youngest sprinter on a team where both of those ahead of him were doing well. Now he’s a big gun, regular wins are expected, he’s been picked ahead of a guy who is winning a lot for the Giro.
Either way, I don’t think it’s physical. He’s fast. He says he has good form. The wins will come. He will be in top condition for the Giro (and he may not even need to be if no other top tier guys are there).