In short, a “view” is a data structure that acts like an array (it is a subtype of AbstractArray in Julia), but the underlying data is actually part of another array.
For example, if x is an array and v = @view x[1:10], then v acts like a 10-element array, but its data is actually accessing the first 10 elements of x.  Writing to a view, e.g. v[3] = 2, writes directly to the underlying array x (in this case modifying x[3]).
Slicing operations like x[1:10] create a copy by default in Julia.  @view x[1:10] changes it to make a view.  The @views macro can be used on a whole block of code (e.g. @views function foo() .... end or @views begin ... end to change all the slicing operations in that block to use views.
Sometimes making a copy of the data is faster and sometimes using a view is faster, as described in the manual.
The “views” terminology is pretty standard; e.g. similar terminology is used in NumPy (which defaults to views for slices) and Boost for C++.
A pull request to improve the Julia documentation would be welcome. (Update: https://github.com/JuliaLang/julia/pull/34390)