Faits : A. Par jugement du 10 juillet 2014, A._ a notamment été reconnu coupable de lésions corporelles simples avec un objet dangereux, de voies de fait, de violences ou menaces contre les autorités et les fonctionnaires, de contraventions à la LCR et à la loi fribourgeoise d'application du code pénal (LCAP; RS FR 31.1). Il a été condamné à une peine privative de liberté ferme de 16 mois. Ce même jugement ordonnait que A._ soit soumis à une mesure thérapeutique institutionnelle au sens de l'art. 59 al. 3 CP (en milieu fermé), telle que préconisée par l'expert-psychiatre, le Dr med. R. B._, dans son rapport du 20 juin 2013. L'expert avait retenu un trouble dépressif récurrent, un trouble de la personnalité émotionnellement labile de type impulsif et un état de stress post-traumatique lié à son histoire de vie et aux actes de torture subis durant son séjour en prison au Sri Lanka. A._ a fait appel du jugement précité en concluant à l'annulation de la mesure thérapeutique institutionnelle. A cette occasion, le prévenu a notamment requis l'exécution d'une nouvelle expertise psychiatrique et demandé qu'elle soit confiée à un autre expert, travaillant dans une autre unité. Le 20 novembre 2014, la direction de la procédure a ordonné un complément d'expertise psychiatrique qu'elle a proposé de confier au Dr B._. B. L'appelant s'étant opposé à ce que le complément d'expertise soit effectué par ce médecin, la Cour d'appel pénal du Tribunal cantonal fribourgeois a statué formellement, par arrêt du 8 janvier 2015. Celle-ci a rejeté la demande de récusation et confirmé la désignation du Dr B._ en qualité d'expert. C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler cet arrêt et d'admettre la requête de récusation de l'expert. Il sollicite en outre l'assistance judiciaire. La cour cantonale renonce à formuler des observations sur le recours, tout comme le Dr B._. Le Ministère public conclut au rejet du recours dans la mesure de sa recevabilité. Le recourant se détermine une seconde fois et maintient sa position.