First, I'm not all that convinced that it sounds odd. What about?
EX: Cook prepared the dogs their dinner.
Second, not all double object verbs undergo dative alternation. Just because a structure fits the pattern IO+DO doesn't mean it undergoes the expected alternation.
There are two major classes of double object verbs, traditionally called ditransitive verbs, and they differ in their semantic architecture. Here are two verbs that share similar meaning, give and donate, and yet they do not share the same dative alternation. "give" undergoes it, whereas "donate" cannot:
 Give money to Max ~ Give Max money.
 Donate money to the church ~ *Donate the church money.
Thirdly, if this structure, Mr Brown prepared his guests dinner, is acceptable, what is it about its semantic frame that has speakers parsing it correctly? That is, speakers know that Mr Brown didn't prepare his guests, but rather that Mr Brown prepared dinner for his guests. That "dinner" is the theme. Possibly, there's a semantic similarity at play here, notably "prepare/make"?
Mr Brown prepared his guests dinner. <dative alternation>
Mr Brown made his guests dinner.