dans un gif, on défini des couleurs comme transparentes, mais il ne s'agit pas d'une couche alpha. c'est binaire : totalement transparent OU totalement opaque. quand tu fais une image détourée sans couleur d'arrière plan dans photoshop, le lissage du contour de ton image est plus ou moins transparent pour un meilleur rendu, ce dont le gif est incapable. lorsque tu l'exportes, ce lissage va être considéré comme un fondu vers le blanc et donc te faire apparaître au final des pixels blanchâtres si tu affiches ton gif sur un fond d'une autre couleur. la seule possibilité est de faire ton gif avec la même couleur que celle qui sera en arrière plan et de rendre cette couleur transparente.
le jpeg n'ayant aucune capacité de transparence, le lissage se fait toujours en fonction de la couleur d'arrière plan. et tu remarqueras que si tu exportes en jpeg ton image détourée, elle apparaîtra bien sur fond blanc.
seul le format png comporte une vraie couche alpha autorisant 256 niveaux de translucidité depuis la transparence totale à l'opacité complète. par contre ce format n'est pas ou peu utilisé pour le web en raison de son support tardif par les navigateur et encore, est-il supporté par tous ? , et par son poids trop élevé pour les contraintes du web tout le monde n'a pas encore l'adsl, loin de là.
conclusion, tout est affaire de compromis et il va te falloir trouver celui qui convient le mieux à ton cas.