I judge by intentions so for
1) I'd say John is morally right
2) This one was difficult I'd say both were wrong because the money isn't theirs and the woman who has a sick child was wrong from the beginning not earning extra money for medicine and the woman who wanted to buy shoes was also wrong because it's not her earned money.
The money's owner earned the money and made the mistake of dropping it and correcting the mistake (giving the money back) would be morally better than saying e.g he made the mistake, he'll pay for it (taking the money).
1) I'd say John is morally right
2) This one was difficult I'd say both were wrong because the money isn't theirs and the woman who has a sick child was wrong from the beginning not earning extra money for medicine and the woman who wanted to buy shoes was also wrong because it's not her earned money.
The money's owner earned the money and made the mistake of dropping it and correcting the mistake (giving the money back) would be morally better than saying e.g he made the mistake, he'll pay for it (taking the money).