The 31-year-old went down under a challenge from onrushing North End keeper Thorsten Stuckmann in the 86th minute only for referee Craig Pawson to wave play on.
Preston had their own penalty appeal turned down earlier in the second half when it appeared Shaun Williams had used his arm to block a Stuart Beavon header.
MK Dons created the best chance of a heated first half with Alan Smith forcing a smart low save out of Stuckmann after a great through ball from Scott Allan.
The second half was an improvement, but Preston's best chance came when Dons defender Williams diverted Beavon's goalbound header onto the post with what looked like an arm after 64 minutes.
The visitors' penalty appeal came after McDonald attempted to round Stuckmann, but that too was not given and the game ended goalless.
In the day's other game, Paul Parry's goal proved enough to lift Shrewsbury out of the bottom four in League One as they saw off local rivals Walsall 1-0.
But Shrewsbury's victory, just their third of the season, owed much to an outstanding display from goalkeeper Chris Weale. The former Leicester man produced some stunning saves inside the opening 15 minutes, the pick of them when he tipped a Florent Cuvelier shot round a post.
Weale also made fine stops to deny both Jamie Paterson and Adam Chambers as the Saddlers came flying out of the blocks.
Shrewsbury had carried no threat until they broke the deadlock totally against the run of play in the 25th minute. Walsall were unable to clear a corner and when Asa Hall's shot came back off the bar, former Wales international Parry reacted quickest to stab in the rebound.
Walsall continued to pepper the Shrewsbury goal in the second half, Andy Butler heading against the crossbar, while Weale pulled off another fine stop from George Bowerman.
Shrewsbury might have doubled their lead when Marvin Morgan set up Parry only for his 15-yard shot to come back off the bar.
- Thorsten Stuckmann
- Shaun Williams
- Paul Parry