Given a nonzero vector $a \in \mathbb{R}^n$ and a scalar $b \in \mathbb{R}$, we define the hyperplane $$ H = \{x \in \mathbb{R}^n \; | \; a^T x = b\}. $$
Let $x$ and $y$ be any two vectors that belong to $H$, clearly $a^T (x - y) \neq b$ (unless $b = 0$), that is, $x - y$ is not in $H$.
Furthermore, the zero vector is not in $H$ unless $b = 0$.
So why a general hyperplane is a subspace?
As you correctly note, hyperplanes are not necessarily "vector subspaces", which can be seen from the fact that they do not contain the zero vector.
However, every hyperplane is an affine subspace of $\Bbb R^n$.