Instead of making the very difficult trek over the Alps, that is. I did some poking around and some sources (random people on internet forums) suggested it was to avoid Massilia or Scipio. Was one of these the reason? Why not just besiege Massilia and/or defeat Scipio's army as a prelude to invasion, if those are the reasons?
Hannibal's strategy was likely not to defeat Roman armies and Roman allies and conquer Rome so fighting outside of Italy would have just delayed him. Also if the battle or prelude to battle went awry he would have been forced to linger in Gaul or even get pushed back toward Spain.
What Hannibal seems to have wanted to do is scare the Romans enough to force them to renegotiate the treaty that was created after the First Punic War. This would have been best done by causing chaos in Italy. Which he did. The plan didn't work because of a multitude of reasons, but that was it.
So although going over the alps in winter was costly and slow, it meant he was In Italy as fast as possible, to try and cause maximum mayhem to the Romans who were not as prepared as they would have been had he arrived later.