I've been thinking why exploratory testing feels more natural working technique for me compared to various ways of scripted testing and maybe got it nailed now. This is probably something others have been thinking all the time but I haven't found earlier the correct words for it.

I don't want to attack a straw man so let's compare testing with set steps and expected results that still allows user to use their head and vary their test execution (spelled in future as scripted) and testing where tester is given an area or idea that should be covered with the tests (in future exploratory).

The bad thing in scripted approach is that it allows tester to take the specified steps and then feel comfortable and happy with the results (independent of whether the tests pass or fail). Scripted approach doesn't encourage tester to question the test itself. Is it meaningful? Is it enough? Best testers of course still do this, at least when they are not too tired, but for others the standard for acceptable has been set already when the test was written, without knowing the possible complications seen during the testing.

In exploratory testing the tester has to ask why this part needs to be tested and what is important in it. Tester needs to be able to justify what has been done and why it is enough. The bar for acceptable is set by the tester and the reviewer (there is hopefully one). Often there are no given correct answers and the tester needs to think in wider context to validate everything is as it should be.

Things are not black and white. It is fully possible to do awful exploratory testing and also possible to achieve good results with scripted approach, especially if things learned during earlier runs are used for writing new test cases. However, exploratory testing emphasizes the responsibility of the tester and also provokes tester to find interesting and important things by giving a lot of freedom to do it. It also allows to focus just now on what is important for the product just now.