Dans la plupart des cas, il n'y a pas de différence. Cependant, à l'intérieur de chaque paquet d'applications se trouve un fichier Info.plist qui contient des informations sur l'application qui sont utiles (principalement) à Mac OS X (les types de fichiers qu'elle traite, etc.).
Mais le fichier Info.plist peut également contenir des informations sur l'environnement dans lequel l'application doit fonctionner. Par exemple, le fichier Info.plist peut contenir des variables d'environnement qui doivent être définies avant le lancement de l'exécutable. Si vous lancez l'exécutable vous-même (sur la ligne de commande), ces variables ne seront pas définies et le comportement de l'application pourrait être différent.
EDIT : Pour aller plus loin, si vous cliquez avec le bouton droit de la souris sur une application et que vous choisissez "Show Package Contents", puis que vous allez jusqu'à "Contents:MacOS" et que vous double-cliquez sur l'icône de l'exécutable dans le dossier de l'application. que vous contournerez également les services de lancement et les informations du fichier Info.plist seront ignorées. Vous pouvez donc faire dans le Finder ce que vous faites en ligne de commande (sans options de ligne de commande, bien sûr).