Faits: A. Le 6 décembre 2011, X._ a été interpellé et prévenu de détention, consommation et trafic de stupéfiants, ainsi que de détention d'armes. La police a retrouvé sur lui environ 16 g de cocaïne, 2 g de haschich et 2'060 francs. Une perquisition de son domicile a en outre permis de découvrir 117,1 g de cocaïne, 10,8 g de marijuana, quarante pastilles de paracétamol, un mixer avec des résidus de poudre blanche, divers papiers portant des inscriptions de calculs de pourcentages et de grammes, un petit poignard et un taser. Par décision du même jour, le Ministère public du canton de Genève a ordonné le séquestre des 2'060 fr. en vue de la couverture des frais et de l'exécution d'une créance compensatrice. Le 12 décembre 2011, X._ a requis la restitution de cette somme, en exposant qu'elle provenait de la rente qui lui est versée par l'aide sociale. Le Ministère public a rejeté cette demande par décision du 21 décembre 2011. X._ a recouru contre cette décision auprès de la Chambre pénale de recours de la Cour de justice du canton de Genève (ci-après: la Cour de justice), qui a rejeté ce recours par arrêt du 21 février 2012. Cette autorité a considéré en substance qu'il existait des charges suffisantes à l'encontre du recourant pour justifier un séquestre en vue de l'exécution d'une créance compensatrice, sans qu'il soit nécessaire de se prononcer sur le séquestre en couverture des frais. B. Agissant par la voie du recours en matière pénale, X._ demande au Tribunal fédéral d'annuler cet arrêt ainsi que l'ordonnance du Ministère public du 6 décembre 2011 et d'ordonner la restitution du montant de 2'060 fr. avec intérêts à 5% à compter du 6 décembre 2011, de lui allouer une somme de 3'000 fr. pour tort moral et, subsidiairement, de renvoyer la cause à l'instance précédente pour nouvelle décision. Il requiert en outre l'octroi de l'assistance judiciaire. Le Ministère public et la Cour de justice ont renoncé à se déterminer.