C'est pas simplement que, lorsque tu lances sous CodeBlocks, il prend en compte le chemin source du projet OU le chemin bin/Debug (je me rappelle plus), et quand tu le lances par l'explorateur il ne prend en compte que le chemin du dossier duquel tu lances le programme ?
Ou encore, les chemins des libs sont peut-être (je sais même pas si c'est possible) indiqués dans l'exécutable lors de la compilation.
Bref, pour résoudre le problème place les dll à la fois dans le dossier racine de ton projet ET dans le dossier de ton exécutable, comme ça tu dois pouvoir le lancer des deux façons.
Sous Linux il y a moyen d'indiquer l'emplacement des librairies au système, de sorte que le programme se lance quelque soit l'emplacement depuis lequel on l'appelle, sans avoir à copier les fichiers de librairies, qui résident tranquillement dans le dossier d'installation de la SFML. Peut-être est-ce possible sous Windows aussi, je ne sais pas ! Mais probablement.