Faits :
A.
A._, ressortissant du Gabon né en 1976, est arrivé en Suisse le 8 août 2002. L'asile lui a été octroyé le 16 juillet 2004, après qu'il s'était prévalu de sa qualité de représentant d'un groupe d'opposants politiques au régime gabonais.
B.
Par jugement du 21 novembre 2019, définitif et exécutoire, le Tribunal de police de la République et canton de Genève a condamné A._ pour escroquerie (art. 146 al. 1 CP), faux dans les titres (art. 251 CP) et recel (art. 160 CP) à une peine privative de liberté de 10 mois. Il a également prononcé son expulsion du territoire suisse pour une durée de 5 ans.
C.
C.a. Entendu le 15 janvier 2020 par l'Office cantonal de la population et des migrations (OCPM) au sujet de l'exécution de son expulsion, A._ a expliqué être opposé à son retour au Gabon. Il a invoqué le risque de persécution qu'il encourait toujours de la part du pouvoir politique en place, plus particulièrement de la famille d'Ali Bongo, actuel président de la République gabonaise, dont le père Omar Bongo occupait cette même fonction au moment où il avait quitté le Gabon et obtenu l'asile en Suisse.
C.b. Le 9 mars 2020, le Secrétariat d'État aux migrations (SEM) a informé A._ qu'en application de l'art. 64 al. 1 let. e de la loi fédérale sur l'asile (LAsi; RS 142.31), l'asile qui lui avait été octroyé en 2004 avait pris fin à la suite de l'expulsion pénale prononcée le 21 novembre 2019. Il lui a toutefois indiqué que sa qualité de réfugié n'était pas touchée.
Le SEM a par ailleurs relevé que l'exécution pénale et son éventuel report étaient du ressort de l'autorité cantonale compétente.
C.c. Par décision du 18 juin 2020, l'OCPM a refusé de reporter l'expulsion de A._ à destination du Gabon et a mandaté les services de police pour qu'ils procèdent à l'exécution de l'expulsion.
Le recours formé par A._ contre cette décision a été rejeté par arrêt du 12 mai 2021 de la Chambre pénale de recours de la Cour de justice genevoise.
D.
A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 12 mai 2021. Il conclut, avec suite de frais et dépens, principalement au report de son expulsion. Subsidiairement, il conclut à l'annulation de l'arrêt attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision. Il sollicite en outre le bénéfice de l'assistance judiciaire.
Le Ministère public genevois et l'OCPM concluent au rejet du recours. La cour cantonale renonce à se déterminer.
A._ persiste dans ses conclusions.
Considérant en droit :
1.
Le Tribunal fédéral examine d'office (art. 29 al. 1 LTF) et librement la recevabilité des recours qui lui sont soumis (ATF 143 IV 357 consid. 1).
1.1. En tant que le jugement ordonnant l'expulsion est entré en force, il ne peut plus être attaqué par un moyen juridictionnel ordinaire (force formelle) et ne peut plus être remis en discussion entre les mêmes parties (force matérielle); il en découle également des conséquences au plan procédural en ce qui concerne les possibilités de contester les mesures d'exécution de la décision entrée en force. Ainsi, même si les décisions sur l'exécution des peines et des mesures sont en principe sujettes au recours en matière pénale au sens de l'art. 78 al. 2 let. b LTF, ce recours n'est pas ouvert lorsque la décision d'exécution ne règle aucune question véritablement nouvelle, non prévue par la décision antérieure, qu'elle n'emporte aucune nouvelle atteinte à la situation juridique de l'intéressé, lorsque le jugement qui doit être exécuté n'a pas été rendu en violation d'un droit fondamental inaliénable et imprescriptible du recourant, s'il n'apparaît pas nul de plein droit ou enfin lorsque l'atteinte à un droit fondamental alléguée n'apparaît pas particulièrement grave (ATF 147 IV 453 consid. 1.4.3 et les références citées).
Dès lors, dans la mesure où il incombe au recourant, en application de l'art. 42 al. 2 LTF (ATF 141 IV 1 consid. 1.1; 138 III 537 consid. 1.2), d'exposer précisément en quoi réside son intérêt au recours (cf. art. 81 al. 1 let. b LTF), il lui revient de rendre vraisemblable, dans le contexte d'une contestation concernant un refus de reporter l'expulsion, que des circonstances déterminantes se sont modifiées depuis le jugement ordonnant l'expulsion, que ces modifications sont concrètement susceptibles de conduire à une appréciation différente de la proportionnalité et que cela imposerait de renoncer à exécuter la mesure. A cet égard, compte tenu de l'ensemble des facteurs qui doivent être considérés, il ne suffit pas d'alléguer qu'une circonstance isolée se serait modifiée (ATF 147 IV 453 consid. 1.4.8 et les références citées).
1.2. En l'espèce, le recourant entend principalement se prévaloir de son statut de réfugié, qui constitue selon lui un obstacle insurmontable à l'exécution de son expulsion.
1.2.1. Le jugement du 21 novembre 2019 ordonnant l'expulsion du recourant, entré en force, présente la particularité de ne pas avoir été motivé, à défaut d'avoir fait l'objet d'une procédure d'appel. Il n'est donc pas possible de déterminer les circonstances sur lesquelles le juge de l'expulsion s'était fondé pour prononcer la mesure litigieuse, et en particulier d'établir s'il en avait déjà été tenu compte du statut de réfugié dont se prévaut le recourant.
Cela étant, dès lors que, pour s'opposer à l'exécution de son expulsion, le recourant invoque des violations de ses droits fondamentaux, et notamment de ses droits découlant de son statut de réfugié, qui lui a été confirmé par le SEM ultérieurement au jugement précité (soit par courrier du 9 mars 2020), il faut admettre qu'il dispose d'un intérêt juridique (cf. art. 81 al. 1 let. b LTF) à contester l'exécution de l'expulsion.
1.2.2. Les autres conditions de recevabilité sont au surplus réunies, si bien qu'il convient d'entrer en matière sur le recours.
2.
Invoquant notamment des violations de l'art. 33 de la Convention du 28 juillet 1951 relative au statut des réfugiés (RS 0.142.30) ainsi que des art. 5 LAsi et 66d CP, le recourant soutient que son expulsion n'est pas susceptible d'être exécutée au regard de l'interdiction de refoulement des réfugiés.
2.1.
2.1.1. Selon l'art. 66d al. 1 CP, l'exécution de l'expulsion obligatoire (art. 66a CP) ne peut être reportée que lorsque la vie ou la liberté de la personne concernée dont le statut de réfugié a été reconnu par la Suisse serait menacée en raison de sa race, de sa religion, de sa nationalité, de son appartenance à un certain groupe social ou de ses opinions politiques (let. a) ou lorsque d'autres règles impératives du droit international s'opposent à l'expulsion (let. b); l'exception prévue par la let. a ne s'applique toutefois pas au réfugié qui ne peut pas invoquer l'interdiction de refoulement prévue à l'art. 5 al. 2 LAsi.
Il existe ainsi deux types de conditions au report de l'exécution de l'expulsion: l'une absolue, qui s'applique à toute personne quel que soit son statut (art. 66d al. 1 let. b CP), et l'autre relative, qui suppose que le statut de réfugié ait été d'abord reconnu par la Suisse à l'étranger expulsé (art. 66d al. 1 let. a CP; arrêt 6B_38/2021 du 14 février 2022 consid. 5.5.4; PERRIER DEPEURSINGE/MONOD, Commentaire romand, Code pénal I, 2017, n° 5 ad art. 66d CP). Ces éventuels obstacles à l'exécution de l'expulsion doivent déjà être pris en compte au moment du prononcé initial de l'expulsion, pour autant que les circonstances soient stables et puissent être déterminées de manière définitive (arrêts 6B_105/2021 du 29 novembre 2021 consid. 3.4.2; 6B_368/2020 du 24 novembre 2021 consid. 3.4.1).
2.1.2. A teneur de l'art. 5 LAsi, nul ne peut être contraint, de quelque manière que ce soit, à se rendre dans un pays où sa vie, son intégrité corporelle ou sa liberté seraient menacées pour l'un des motifs mentionnés à l'art. 3 al. 1 LAsi, ou encore d'où il risquerait d'être astreint à se rendre dans un tel pays (al. 1). L'interdiction du refoulement ne peut être invoquée lorsqu'il y a de sérieuses raisons d'admettre que la personne qui l'invoque compromet la sûreté de la Suisse ou que, ayant été condamnée par un jugement passé en force à la suite d'un crime ou d'un délit particulièrement grave, elle doit être considérée comme dangereuse pour la communauté (al. 2).
Cette disposition, de même que l'art. 66d al. 1 let. a CP, concrétisent l'art. 25 al. 2 Cst., qui protège les réfugiés en particulier contre le refoulement vers un État étranger où ils risquent d'être persécutés. Le texte de l'art. 5 LAsi fait du reste écho à celui de l'art. 33 de la Convention internationale relative au statut des réfugiés.
2.1.3. En ce qui concerne la notion de crime ou de délit particulièrement grave, évoquée à l'art. 5 al. 2 LAsi, il convient de se référer à l'art. 65 LAsi, qui renvoie notamment à l'art. 63 al. 1 let. b LEI (cf. arrêt 6B_551/2021 du 17 septembre 2021 consid. 3.3.2).
Selon cette dernière disposition, l'autorisation d'établissement ne peut être révoquée que lorsque l'étranger attente de manière très grave à la sécurité et l'ordre publics en Suisse ou à l'étranger, les met en danger ou représente une menace pour la sécurité intérieure ou extérieure de la Suisse. En règle générale, une personne attente " de manière très grave " à la sécurité et à l'ordre publics lorsque ses actes lèsent ou compromettent des biens juridiques particulièrement importants comme l'intégrité corporelle, physique ou sexuelle. Le critère de la gravité qualifiée de l'atteinte peut également être réalisé par des actes contrevenant à des prescriptions légales ou à des décisions de l'autorité qui présentent un degré de gravité comparativement moins élevé, mais qui, par leur répétition malgré des avertissements et des condamnations successives, démontrent que l'étranger ne se laisse pas impressionner par les mesures de droit pénal et qu'il ne possède ni la volonté ni la capacité de respecter à l'avenir l'ordre juridique (cf. ATF 137 II 297 consid. 3.3 p. 303 s.; arrêts 2C_766/2019 du 14 septembre 2020 consid. 4.4; 2C_107/2018 du 19 septembre 2018 consid. 4.5.1). En d'autres termes, des infractions qui, prises isolément, ne suffisent pas à justifier la révocation, peuvent, lorsqu'elles sont envisagées ensemble, satisfaire aux conditions de l'art. 63 al. 1 let. b LEtr (arrêts 2C_89/2018 du 16 août 2018 consid. 4.2.1; 2C_127/2016 du 13 septembre 2016 consid. 4.2.1). La question de savoir si l'étranger en cause est disposé ou apte à se conformer à l'ordre juridique suisse ne peut être résolue qu'à l'aide d'une appréciation globale de son comportement (ATF 139 I 16 consid. 2.1 p. 18 s.; arrêts 2C_557/2018 du 26 octobre 2018 consid. 3.2; 2C_89/2018 du 16 août 2018 consid. 4.2.1).
2.2. En l'espèce, se référant à une correspondance adressée le 11 juin 2020 par le SEM à l'OCPM, l'autorité précédente a d'abord relevé que le Gabon ne connaissait pas une situation de guerre, de guerre civile ou de violence généralisée susceptible de mettre concrètement en danger des ressortissants de cet État, même si des troubles y avaient certes eu lieu lors de la crise électorale de 2016 - lors de laquelle des opposants au régime avaient été emprisonnés - et si la situation politique y restait tendue.
S'agissant particulièrement du recourant, qui résidait en Suisse depuis 2002, celui-ci n'avait toutefois pas établi avoir conservé depuis lors des liens avec des mouvements d'opposition politique au Gabon. Il n'apparaissait dès lors pas qu'en cas de renvoi dans son pays d'origine, l'intéressé serait concrètement exposé à des persécutions ou à d'autres traitements inhumains ou dégradants. La cour cantonale en a déduit que son expulsion n'avait pas à être différée (cf. arrêt attaqué, consid. 5.2 p. 8 s.).
2.3. Il paraît ainsi qu'en réfutant l'existence d'un risque concret pour la vie ou la liberté du recourant en cas de retour au Gabon, la cour cantonale s'est attachée à lui dénier la possibilité d'être mis au bénéfice du principe de non-refoulement des réfugiés, ancré en droit fédéral à l'art. 5 al. 1 LAsi et plus particulièrement à l'art. 66d al. 1 let. a in initio CP, s'agissant de l'examen du caractère exécutable de l'expulsion pénale.
Le raisonnement de la cour cantonale omet cependant de prendre en considération que, si l'asile octroyé au recourant avait certes pris fin avec l'entrée en force de l'expulsion (cf. art. 64 al. 1 let. e LAsi), cette dernière circonstance n'avait en revanche pas eu d'effet sur son statut de réfugié, reconnu par la Suisse et encore attesté par le SEM dans son courrier adressé à l'intéressé le 9 mars 2020. Il devait ainsi en être déduit que ce dernier bénéficiait toujours de l'interdiction de refoulement, pour autant qu'il n'était pas empêché de s'en prévaloir compte tenu des risques qu'il représentait pour la sécurité publique, hypothèse expressément réservée par l'art. 66d al. 1 let. a in fine CP, en vertu du renvoi fait à l'art. 5 al. 2 LAsi.
Sur ce dernier point, la cour cantonale s'abstient toutefois de tout développement propre à expliciter dans quelle mesure la présence du recourant en Suisse compromet la sûreté nationale ou dans quelle mesure, au regard des infractions pour lesquelles il avait été condamné, il devait être considéré comme dangereux pour la communauté (cf. art. 5 al. 2 LAsi). Dans ce contexte, tout contrôle adéquat du caractère exécutable de l'expulsion s'avère compromis. Il se justifie dès lors d'annuler l'arrêt attaqué et de renvoyer la cause à la cour cantonale pour qu'elle complète sa motivation (cf. art. 112 al. 1 let. b et al. 3 LTF).
3.
Au vu de ce qui précède, le recours doit être admis, l'arrêt attaqué annulé et la cause renvoyée à l'autorité précédente pour qu'elle rende une nouvelle décision tenant compte des considérants qui précèdent. Il lui appartiendra, le cas échéant, d'examiner également la recevabilité du recours dont elle avait été saisie contre la décision du 19 juin 2020 et en particulier de déterminer si celui-ci avait été formé en temps utile, alors qu'elle avait laissé cette question ouverte dès lors que le recours devait selon elle être rejeté sur le fond (cf. arrêt attaqué, consid. 1.3.2 p. 6).
Le recourant, qui obtient gain de cause, ne supporte pas de frais et peut prétendre à des dépens, à la charge du canton de Genève (art. 68 al. 1 et 2 LTF). La demande d'assistance judiciaire devient ainsi sans objet.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis, l'arrêt attaqué est annulé et la cause est renvoyée à la cour cantonale pour nouvelle décision.
2.
Il n'est pas perçu de frais judiciaires.
3.
Une indemnité de 3'000 fr., à verser en mains de l'avocat du recourant à titre de dépens, est mise à la charge du canton de Genève.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 30 mars 2022
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
Le Greffier : Tinguely