user6963: I'm particularly thinking of Stockfish here, since that is the one I use most, but it seems to happen with other engines.
Sometimes you have a position and the recommended move for white might be +1.7 say.  So you make the move and then for black the best move is suggested as being +0.6.
Is this because:
A)
The engine is not perfect, so if it can search 19 moves ahead, then after the move it can search one ply further into the game, and that reveals something that dramatically changes the score.  If so, what does this tell us about the position?
Or
B)
Does the engine take into account the possibility that the opponent won't play optimally.  E.g. does the engine assign any value to traps that are avoidable.  For example, Given a choice between going directly to a position, or transposing to that position via offering a trap you should clearly try the trap first.  Would the engine agree?  Is the score only reflecting the "best" line, or some average of possible lines?

user17202: Engines like Stockfish use something called the Minimax Algorithm, which in short means that the engine always assumes best play by the opponent. 
That means it will not go for any traps if it sees a refutation that is beneficial to the opponent.
The algorithm basically works so that it looks at as many positions as possible, and applying an evaluation function to them. Stockfish is extremly fast at calculating positions and thus looking pretty far ahead, but its evaluation function isn't as precise as that of Komodo, for example.
As a consequence, the evaluation can vary quite a bit, depending on how many positions it had time to calculate. Playing a move obviously limits the search space, so the engine can give a better analysis of that specific position, so it's more likely to find something that has a major impact on the evaluation.
TL;DR: Answer A is correct.

user12873: Yes, it's A). The engine is not perfect and can only search so far in a given time. When you make a move for White, the engine doesn't have to waste time considering White's other options anymore. It can focus on only searching down the sub-tree rooted at the move you just made for White.
It's hard to say what this means about the positions that Stockfish is calculating. You might be tempted to say that the positions are tense and very sharp. However, using quiescence search, Stockfish tends to avoid evaluating such positions and waits until the game calms down. So it's hard to infer what the positions are like.

user8309: Stockfish 9 and 10 had contempt set to 20 or so by default, so that the engine would avoid draws when playing against weaker opponents (i.e. most other engines and all humans).  If you change the contempt to 0 when analyzing, that should bring the evaluations with white or black to move closer to the same number.

user825: I assume you used Stockfish with a GUI because the sign of the score would have been different if you didn't.
First of all, Stockfish is well known for its instability. The strongest chess engine isn't the best engine for analysis. This is like your local chess instructor might be a better coach than Kasparov for you.
A is obviously correct. Furthermore, the search algorithm could change as the hash-table gets filled up. The more that the engine "knows" about a particular position, the better it can analyse for the next position.

6963: <p>I'm particularly thinking of Stockfish here, since that is the one I use most, but it seems to happen with other engines.</p>

<p>Sometimes you have a position and the recommended move for white might be +1.7 say.  So you make the move and then for black the best move is suggested as being +0.6.</p>

<p>Is this because:</p>

<p>A)
The engine is not perfect, so if it can search 19 moves ahead, then after the move it can search one ply further into the game, and that reveals something that dramatically changes the score.  If so, what does this tell us about the position?</p>

<p><strong>Or</strong></p>

<p>B)
Does the engine take into account the possibility that the opponent won't play optimally.  E.g. does the engine assign any value to traps that are avoidable.  For example, Given a choice between going directly to a position, or transposing to that position via offering a trap you should clearly try the trap first.  Would the engine agree?  Is the score only reflecting the "best" line, or some average of possible lines?</p>
 17202: <p>Engines like Stockfish use something called the <a href="https://en.wikipedia.org/wiki/Minimax" rel="nofollow noreferrer">Minimax Algorithm</a>, which in short means that the engine <strong>always assumes best play</strong> by the opponent. </p>

<p>That means it will not go for any traps if it sees a refutation that is beneficial to the opponent.</p>

<p>The algorithm basically works so that it looks at as many positions as possible, and applying an evaluation function to them. Stockfish is extremly fast at calculating positions and thus looking pretty far ahead, but its evaluation function isn't as precise as that of Komodo, for example.</p>

<p>As a consequence, the evaluation can vary quite a bit, depending on how many positions it had time to calculate. Playing a move obviously limits the search space, so the engine can give a better analysis of that specific position, so it's more likely to find something that has a major impact on the evaluation.</p>

<p>TL;DR: Answer A is correct.</p>
 12873: <p>Yes, it's A). The engine is not perfect and can only search so far in a given time. When you make a move for White, the engine doesn't have to waste time considering White's other options anymore. It can focus on only searching down the sub-tree rooted at the move you just made for White.</p>

<p>It's hard to say what this means about the positions that Stockfish is calculating. You might be tempted to say that the positions are tense and very sharp. However, using quiescence search, Stockfish tends to avoid evaluating such positions and waits until the game calms down. So it's hard to infer what the positions are like.</p>
 8309: <p>Stockfish 9 and 10 had contempt set to 20 or so by default, so that the engine would avoid draws when playing against weaker opponents (i.e. most other engines and all humans).  If you change the contempt to 0 when analyzing, that should bring the evaluations with white or black to move closer to the same number.</p>
 825: <p>I assume you used Stockfish with a GUI because the sign of the score would have been different if you didn't.</p>

<p>First of all, Stockfish is well known for its instability. The strongest chess engine isn't the best engine for analysis. This is like your local chess instructor might be a better coach than Kasparov for you.</p>

<p>A is obviously correct. Furthermore, the search algorithm could change as the hash-table gets filled up. The more that the engine "knows" about a particular position, the better it can analyse for the next position.</p>
