Is there an engine which tries to find moves that forces the opponent to find the best move? For example: 

1r1q2k1/1p3rpp/b1pn4/P5N1/1B1P4/1Q6/1P3PPP/2R3K1 w - - 0 1


Here, the best move is not 1.Bxd6 but White plays it anyway in a swindle attempt to win, since Black is forced to take on g5 (and not d6) to keep the advantage.
The short answer is no (as far as I know). You're adding together two concepts, so let me try to address them both:


Moves that have responses that are hard to find. This is a tough problem because it basically means running a regular computer engine and a more human-like engine at the same time, and seeing what moves are found by the first but not the second. People gave up on human-like engines a while ago because the more brute-force was so much more effective. So this is a tough research problem (one that people worked on for decades in the 20th century) without a big payoff.
Moves that are forcing. If the opponent has only one good response, that increases the chance that she'll play a bad move, right? Well, not really; if I play a capturing move and the only good move is a recapture, chances are my opponent will find it. So just using the number of good responses as a measure of how tricky a move is problematic. (Forcing moves are usually good to consider because they limit the search tree and increase the chance that all leaves in it are good for you, but that's a different reason from trying to induce a mistake.)


It would be nice to have an engine whose evaluations were "How likely would I be to win from this position against another 2000 player?" rather than "How likely would a computer be to win from this position against another computer?" but people have overwhelmingly concentrated on the later. (I would be delighted to be wrong about this.)