Essa é uma boa abordagem, mas a pesquisa será muito mais rápida se você calcular apenas os hashes de arquivos com o tamanho correto. Usando os utilitários GNU / BusyBox:
wanted_size=$(stat -c %s d1/x1)
wanted_hash=$(sha256sum <d1/x1)
find d2 -type f -size "${wanted_size}c" -execdir sh -c 'test "$(sha256sum <"$0")" = "$1"' {} "$wanted_hash" \; -print