I think the meaning was that you can't add or remove elements from a slice, but you can with a Vec. When it comes to mutating the elements themself however they are equivalent. The documentation is pretty misunderstandable though.
"Slices are immutable" is not a great way to put it. Just like any other type, slices aren't inherently mutable or immutable.
If you take a mutable reference to a slice, you can mutate its elements. If you take a shared reference to a slice, you may or may not be able to mutate its elements (depending on whether the elements themselves contain interior mutability).
I agree that it probably wanted to express that the length of a slice can't be changed, but the phrasing is certainly ambiguous at best, misleading/incorrect at worst.
This is one case where the official documentation (and most other places) use pretty sloppy terminology. "Slice" is used for all of
[T] which is unsized
&[T] which is a shared (T may or may not have or contain shared mutability, but you can't replace any element itself say)
&mut [T] which is exclusive (each element can be replaced or mutated)
And with &[T] or &mut [T], the reference-to-slice may itself be mutable (so you can make it point to a different slice). For example consider this implementation of Read for &[u8], where the shared slice (Self: &[u8]) is shortened when bytes are read.
The documentation on that page should definitely be improved.