user443: 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.

user12629: Yes, I have seen programs that attempt to explain why a move is good or bad in language.  Chessmaster 9000 would do this.
Many engines will show you the best line for each move.  So it can tell you that if you play g6, it expects the game to go f5 gxf5 Nxf5, whereas if you play b6 it expects the game to go a5 bxa5 Bxa5.  Often from there you can see why the move was good or bad.  But sometimes it's still very subtle.
There is a tool here where you can input a position and it will tell you exactly why Stockfish evaluates the position the way it does.  It only works for a static position (it doesn't look ahead at all), but it's still interesting.

user9030: In addition to other answers, engines don't assess positions like humans, so they can't provide a good explanation why they think your move is inferior (emphasis on they think, not necessarily).
But you can follow sidelines using engine suggestions and understand why it was inferior. At least this is what I do.
Could there be an engine which can do this? I guess yes, but from business point of view, probably, an infeasibly huge effort is necessary.

user17: 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.

user825: @D_M mentioned about Chessmaster, but it only reports very simple static features such as:

Your queen is being attacked
You lose a pawn in the computer line
You win an exchange in the computer line

Do you know why Chessmaster did that? That's because the implementation was easy.

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.)

NO. Chesmaster can't do that. No software can do that. We don't have the technology to do that. Traditional engine programming techniques can't do that. 
To do what your describe, we need advanced mathematics/machine learning models. I'm not aware of anything like that.

user18998: 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.  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.

443: <p>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.) </p>

<p>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.</p>
 12629: <p>Yes, I have seen programs that attempt to explain why a move is good or bad in language.  Chessmaster 9000 would do this.</p>

<p>Many engines will show you the best line for each move.  So it can tell you that if you play g6, it expects the game to go f5 gxf5 Nxf5, whereas if you play b6 it expects the game to go a5 bxa5 Bxa5.  Often from there you can see why the move was good or bad.  But sometimes it's still very subtle.</p>

<p>There is a tool <a href="https://hxim.github.io/Stockfish-Evaluation-Guide/" rel="nofollow noreferrer">here</a> where you can input a position and it will tell you exactly why Stockfish evaluates the position the way it does.  It only works for a static position (it doesn't look ahead at all), but it's still interesting.</p>
 9030: <p>In addition to other answers, engines don't assess positions like humans, so they can't provide a good explanation why <em>they think</em> your move is inferior (emphasis on they think, not necessarily).</p>

<p>But you can follow sidelines using engine suggestions and understand why it was inferior. At least this is what I do.</p>

<p>Could there be an engine which can do this? I guess yes, but from business point of view, probably, an infeasibly huge effort is necessary.</p>
 17: <p>I think the chess engine can "tell" you, but in an indirect way.</p>

<p>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.</p>

<p>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.</p>
 825: <p>@D_M mentioned about Chessmaster, but it only reports very simple static features such as:</p>

<ul>
<li>Your queen is being attacked</li>
<li>You lose a pawn in the computer line</li>
<li>You win an exchange in the computer line</li>
</ul>

<p>Do you know why Chessmaster did that? That's because the implementation was easy.</p>

<blockquote>
  <p>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.)</p>
</blockquote>

<p><strong>NO</strong>. Chesmaster can't do that. No software can do that. We don't have the technology to do that. Traditional engine programming techniques can't do that. </p>

<p>To do what your describe, we need advanced mathematics/machine learning models. I'm not aware of anything like that.</p>
 18998: <p><strong>Sort of (but not really) - and it's actually getting <em>harder</em> for engines to do this for you.</strong>  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.</p>
<p>It's important to understand, that '2.0' or '1.4' score <em>aren't</em> 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 &quot;Current evaluation score&quot; 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.)</p>
<p>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 <a href="https://en.wikipedia.org/wiki/Moore%27s_law" rel="nofollow noreferrer">Moore's Law</a>.  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.</p>
<p>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 &quot;Here's the position now&quot; and &quot;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.&quot;</p>
<p>Occasionally a move from a grandmaster winning game is said to be &quot;invisible&quot; 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.</p>
