The reason for that is Google and the rest are instantly suspicious when they find traffic re-routed via scripts and meta commands - they suspect you are attempting to tamper with their rankings. Conversely, they regard htaccess transitions as legitimate business solutions.
One of my clients decided just a few weeks ago to change domain names, despite being #1 in Google for a few keywords - the client's ex-husband's name was part of her domain name, and the new husband hated being constantly remindered of her prior life, so they changed the name of their business.
Her old website is still #1 today for her most important keyword (even though the traffic is being re-routed automatically via htaccess) but the NEW website is already #3 in the rankings - and I just launched it 12 days ago!
Question: have you considered keeping both websites in operation? Maybe that's a better solution.
Have you pinpointed the reason why the old site is doing better in the rankings?
Consider this: the age of a domain name, and the amount of time left in the domain name registration both impact the rankings - if two sites are basically equal, the one with the older domain name will be ranked higher. And if two sites are basically the same, the one with a longer remaining registration period will be ranked higher.
Whatever you do, it is critical that you do not let that old domain name expire, because a competitor may grab it and take advantage of the fact that a lot of people still might have links to it in their Favorites/Bookmarks.