Je vois deux raisons, géographique et stratégique:

Hannibal n’avait pas de flotte. Il a pu longer la côte jusqu’au Rhône en se ravitaillant auprès des Gaulois, mais le passage par voie de terre le long de la côte ligure était fort mal commode en tout temps, en raison des montagnes tombant à pic dans la mer en de nombreux points de l’arc ligure. Une flotte était indispensable pour assurer le ravitaillement de son armée.

Par ailleurs, Rome avait décidé d’envahir l’Espagne avec une armée de terre embarquée sur la flotte qui, précisément, longeait la côte. Arrivé à proximité de Marseille, alliée de Rome, le consul Scipion apprit qu’Hannibal était sur le point de franchir le Rhône et il lança une troupe le long du fleuve pour l’en empêcher, sans succès.

Hannibal, dont l’armée se déplaçait beaucoup plus rapidement que celle du consul, décida alors de lui échapper en remontant vers le Nord et en passant par les cols alpins. Scipion, qui avait pour mission de conduire l’armée et la flotte romaines en Espagne, ne pouvait pas le poursuivre.