Citation: 6B_136/2021 E. 7

Au vu de ce qui précède, le recours doit être partiellement admis, l'arrêt attaqué annulé et la cause renvoyée à l'autorité cantonale pour qu'elle rende une nouvelle décision dans le sens des considérants (cf. consid. 2.5 supra). Pour le reste, le recours doit être rejeté dans la mesure où il est recevable. Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (art. 66 al. 1 LTF); il peut prétendre à des dépens réduits à la charge du canton de Fribourg (art. 68 al. 1 LTF), lequel est dispensé de tout frais (art. 66 al. 4 LTF). La cause étant jugée, la demande d'octroi de l'effet suspensif n'a plus d'objet. Par ces motifs, le Tribunal fédéral prononce :