Faits: A. Le 23 avril 2009, A._ a été arrêté dans le cadre d'une instruction ouverte à la suite du décès de B._, tué par balles à son domicile de Genève-Cointrin dans la nuit du 25 au 26 novembre 2008. Le Juge d'instruction du canton de Genève en charge de l'affaire (ci-après: le juge d'instruction) l'a inculpé du meurtre, voire de l'assassinat de B._. Sont également prévenues C._ et sa mère D._, qui on admis avoir chargé A._ de tuer la victime moyennant le paiement de 50'000 francs. E._ est aussi mis en cause pour avoir mis en contact A._ avec les commanditaires de l'homicide. Sur requête du juge d'instruction, la détention de A._ a été prolongée à plusieurs reprises. Par ordonnance du 26 janvier 2010, la Chambre d'accusation du canton de Genève (ci-après: la Chambre d'accusation) a prolongé de trois mois la détention du prévenu, en retenant l'existence d'un risque de collusion. Statuant sur recours de A._, le Tribunal fédéral a annulé cette ordonnance pour des raisons formelles liées à un défaut de motivation et il a renvoyé la cause à la Chambre d'accusation pour nouvelle décision (arrêt 1B_55/2010 du 11 mars 2010). Par ordonnance du 26 mars 2010, la Chambre d'accusation a confirmé la prolongation de la détention avant jugement pour une durée de trois mois, en raison des risques de collusion et de fuite. La Cour de céans a rejeté le recours formé contre cette ordonnance, considérant notamment qu'il subsistait un risque de collusion (arrêt 1B_111/2010 du 7 mai 2010). La détention du prénommé a encore été prolongée par la suite. B. Par ordonnance du 14 avril 2011, le Tribunal des mesures de contrainte du canton de Genève a autorisé la prolongation de la détention provisoire de A._ jusqu'au 14 juillet 2011, en constatant l'absence d'éléments nouveaux s'agissant du caractère suffisant des charges et en retenant l'existence de risques de fuite et de collusion. L'intéressé 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), en contestant les charges et les risques de fuite et de collusion. Il proposait en outre des mesures alternatives à la détention, telles que l'obligation de se présenter régulièrement à un poste de police, le port d'un bracelet électronique et l'interdiction de contact avec les autres prévenus. Par arrêt du 3 mai 2011, la Cour de justice a rejeté ce recours, considérant en substance que les charges à l'encontre du prévenu n'avaient pas diminué et que les risques de collusion et de fuite demeuraient concrets et actuels. Elle a en outre estimé que l'existence d'un risque de collusion la dispensait d'examiner les mesures de substitution proposées par le prévenu, celles-ci n'étant pas susceptibles d'atteindre les buts poursuivis par la détention. 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'ordonner sa libération immédiate. Invoquant la garantie de la liberté personnelle, il soutient que les charges ne sont pas suffisantes et que les risques de fuite et de collusion ne sont pas réalisés, de sorte que les conditions de la détention prévues par l'art. 221 du code de procédure pénale suisse (CPP; RS 312.0) ne sont pas réunies. Il requiert en outre l'assistance judiciaire. La Cour de justice a renoncé à formuler des observations. Le Ministère public du canton de Genève s'est déterminé, concluant au rejet du recours. Le recourant a présenté des observations complémentaires.