I was thinking about this the other day, and it is still one of the things about the Nolan-Batman trilogy that is still kind of irksome to me. Don't get me wrong, I loved Maggie Gyllenhaal as Rachel in The Dark Knight, but I still felt it would have had a more emotional impact if Katie Holmes had returned for the role, as we had already had an entire film to get to know the character. Does anyone know why Katie Holmes was replaced?
Katie Holmes chose not to reprise her role as Rachel Dawes
According to Nolan, via alloy.com, Katie was "unavailable for the role",
Katie wasn't available for the role, which I wasn't very happy about, but these things happen, and I was very, very fortunate that Maggie was able to take it over.
Christopher Nolan sourced by alloy.com
Maggie Gyllenhaal even sought out Katie's blessing when taking the role, due to her respect for the actress.
I wanted to be sure, first of all, that I had her blessing,” Gyllenhaal explained. “And I was assured that I did. I'm a big fan of hers, I think she was really great in the first movie.
Katie Holmes says it was a decision she made at the time but not one she regrets making.
It was a decision that I made at that time and it was right for me at that moment, so I don't have any regrets. I think that Maggie did a wonderful job.
Interview with Business Insider
She also said that she had given up the role to work on her new movie (at the time) Mad Money
"I had a great experience working with Christopher Nolan [and] I'm sure it's going to be a great movie," she said. "I chose to do this movie ['Mad Money'], and I'm really proud of it".... "I was so excited to work with Diane [Keaton] and Queen Latifah and [director] Callie [Khouri]."
Interview with MTV