Question: Can any chess engine tell you why a move is bad or good? For example, say a chess engine says the score against my opponent is currently +2 in my favor. I then make a move and my score drops to say 1.4. Can any engine tell me what I did wrong such that my score dropped from 2 to 1.4 (assuming I didn't hang a piece or pawn etc.) 

It seems to me that having chess programmers make their programs even stronger is now pointless and it would be much more beneficial to the average chess player if they could have their programs instruct us why a move is bad (or good), assuming they currently cannot do this.

Answer: 
**Sort of (but not really) - and it's actually getting *harder* for engines to do this for you.** To understand why, you have to understand how the evaluation goes. Engines typically can make snap evaluations on a given position, giving it a raw point value. Then, whatever the position is, they play forward, trying to find the line forward that optimizes that score for both sides.

It's important to understand, that '2.0' or '1.4' score *aren't* the evaluation/score for the current position. Instead, it's the evaluation N moves down the line, with each side playing the best move the engine found. This is why the "Current evaluation score" jumps around while the computer is thinking. It's not that the 'score' for a position changed - it's just that it found a different line moving forward that ended up in a different position (which had a different score.)

In the past, engines sucked. Not just because of sub-optimal algorithms, but because of very slow hardware - if you think compounding interest is powerful, it's nothing compared to [Moore's Law](https://en.wikipedia.org/wiki/Moore%27s_law). So computers back then were just looking a few moves into the future. Which made it relatively easy for a human to follow the logic - your score went down because you're losing your knight the next turn.

But now? If your score went from '2.0' to '-0.3', it's possible it's because, due to some unavoidable tactics over the next 7 moves, that you'll have to give up the exchange in order to avoid losing your queen or getting checkmated. But it's hard to show the leap from "Here's the position now" and "Well, I evaluated 20 billion positions going forward, and trust me when I say that you sacrificing the rook for their bishop was the best you could hope for."

Occasionally a move from a grandmaster winning game is said to be "invisible" to a chess engine. Only after the move is made, the engine recognizes the high value of the move. This weakness in the engine could easily be remedied by more exhaustive checking of possible moves.
I think the chess engine can "tell" you, but in an indirect way.

What I would do is to play several different moves from the same position. The chess engine will (presumably) give you a different score for each one.

This will allow you to "rank" the various moves. Perhaps a pattern will emerge. If not, you might want to get a (stronger) human player to explain the chess engine's rankings to you.