It's one thing to destroy your enemies and lose some innocent lives in the process. Jon has led armies to their deaths before in a number of causes. But he has always been able to see the greater cost. He went to Dany looking for her to acknowledge that the cost of her getting the crown was a huge and terrible loss of life. But Dany didn't think it was. What she thought was justified, Jon could never justify. And she continued to be merciless all while thinking she was good. She said to Jon, "We can't hide behind small mercies," but "small mercies" is basically Jon Snow's middle name. He saves everyone he can, and those he can't he feels miserable about. Dany didn't feel that misery or that cost. She was just giddy that she'd won the throne she'd always heard about since she was a child. Her inability to see the flaws in how she took the throne seems to be what finally got to Jon in the end. If this is what she thought "good" was, he had to kill her for the greater good — the survival of the people of Westeros.