This is the expected behavior. There is no supported way to migrate history from a non-TFS repository and maintain a true history (outside of comments). TFS team does this on purpose so as to maintain the integrity of the audit trail (instead of having TFS "lie" about when that change was checked into TFS).
In practice it is usually sufficient as you still have the changes in the proper order, and if you're going back to inspect history the information you want (date/time, user) is still captured, just not in the ideal location.