I'm struggling a bit to understand exactly what your question is but I think what you're asking is why the value 0.8 is not in your vector x=-3:0.1:3. The answer is that Matlab deals with floating point numbers, so the numbers stored may sometimes be off from what you expect by a very tiny amount.
The workaround, if you know what the precision of you numbers should be, is to round to that precision. Your code is as follows:
You define the vector.
This asks Matlab a question. You've asked "what elements of x are exactly equal to round(0.8,1)? You'd expect the response to be a vector of zeros except at 0.8, where you'd expect a 1. This line doesn't actually do anything as you don't store or display the output.
As you've noted, none of the elements of x are equal to 0.8, despite your expectations that one of them will be.
You now round all the elements of x to one significant figure.
Again you ask "Are any elements of x equal to 0.8?", but now one of them is. However again you don't store or display the output so effectively it does nothing.
Are any of the elements of x equal to 0.8? There wasn't one before, but now there is. This is because of the rounding you did removing the floating point error.
If you want to return the position in x where 0.8 is stored, you can use code something like