I think if they'd done a direct translation of this it would have sounded really stilted, but I agree that calling Sora's Heart a "prison" doesn't really suit the context seeing as it doesn't explain what he's supposed to be talking about (that Sora's Heart is harboring other Hearts). Also the line delivery on it still sounds really flat, so. :x
Instead of prison, it could have been 'refuge' used.