For the deceitful ending to work they would have had to spell it out that Moriarty intended to play out his character in real life. The way they played it, it seemed like Moriarty was not ruled by his character's criminal programming, so deceiving him would come off more as depriving a sentient being of his right to freedom.
His right to freedom? More like his right to life, since his program wasn’t going to be kept running. Even if one expects him to remain a villain after leaving the holodeck, that doesn’t give Picard the right to kill him, does it?