Faits: A. Par jugement du 23 octobre 2009, le Tribunal correctionnel du district de La Chaux-de-Fonds a condamné X._ à quatre ans et demi de privation de liberté pour remise de substances nocives à des enfants, actes d'ordre sexuel avec une enfant, contrainte sexuelle, désagréments causés par la confrontation à un acte d'ordre sexuel et infractions graves à la loi fédérale sur les stupéfiants. Il a en outre suspendu l'exécution de la peine au profit de l'internement du prénommé. Pour l'essentiel et en résumé, le jugement repose sur les faits suivants. Le 14 septembre 2008, alors qu'il circulait en train entre Sonceboz-Sombeval et La Chaux-de-Fonds, X._ a abordé A._ -âgée de quinze ans- qu'il ne connaissait pas. Sous la menace d'un couteau, il l'a obligée à fumer de la marijuana et à consommer, à plusieurs reprises, de la cocaïne. Profitant de l'état second et de la crainte dans lesquels il avait ainsi placé sa victime, il l'a embrassée sur la bouche, lui a caressé la poitrine, lui a pénétré du doigt le vagin et l'anus, l'a forcée à lui pratiquer une fellation et a tenté, en vain, de la sodomiser avant de la contraindre à une seconde fellation. Le 15 janvier 2009, il s'est masturbé dans le train reliant Oberbuchsiten et Soleure sous les yeux de B._. Entre juin 2008 et le 15 janvier 2009, il s'est adonné au trafic d'au minimum 44 grammes de cocaïne, dont cinq ont été affectés à sa consommation personnelle. B. Statuant sur le pourvoi formé contre ce jugement en tant qu'il ordonne l'internement du condamné, la Cour de cassation pénale du Tribunal cantonal neuchâtelois l'a rejeté par arrêt du 15 mars 2010. C. X._ forme un recours en matière pénale contre l'arrêt cantonal, concluant, principalement, à l'annulation de la mesure d'internement, subsidiairement, au renvoi de la cause pour nouveau jugement. En outre, il réclame le bénéfice de l'assistance judiciaire. Invités à formuler des observations, la cour cantonale s'est référée aux considérants de son arrêt, tandis que le Ministère public a conclu au rejet du recours.