Just like Chris said in his comment, let us suppose we have a bounded Lipschitz domain $\Omega\subset \mathbb{R}^d$, $C^{\infty}_0(\Omega)$ fails to approximate an arbitrary $W^{k,p}(\Omega)$-function unless you set the boundary value to be 0.
A possible argument could be constructed using the trace theorem. Roughly speaking, denote $H^1(\Omega) := W^{1,2}(\Omega)$, let $ T: H^1(\Omega) \longrightarrow H^{1/2}(\partial \Omega) $ be the trace operator. Suppose we prescribe a $u\in H^{1}(\Omega)$, which has a non-zero trace, leading us to the trace inequality $ \|Tu \|_{H^{1/2}(\partial \Omega)} \leq c\| u \|_{H^1(\Omega)} $ Now assume we have a sequence $\{u_n\}\subset C^{\infty}_0(\Omega) \subset H^1(\Omega)$, such that $u_n\to u$ in the $H^1(\Omega)$-norm, then use trace inequality we will see the contradiction in which zero is greater than or equal to a positive number.
If you are not satisfying with the existence of the "non-zero trace" part, we could circumvent this by using the surjectivity of the trace operator, define its right inverse as $ \mathscr{I}: H^{1/2}(\partial \Omega)\longrightarrow H^1(\Omega) $ serving like an extension of any function defined on boundary to the interior, and $T(\mathscr{I}g) = g$ for any $g\in H^{1/2}(\partial \Omega)$, prescribe any $g\in H^{1/2}(\partial \Omega)$, say $g = 1$ on $\partial \Omega$, let $u = \mathscr{I}g$.
Counter-example on $\Omega = (0,1)$:
Let $u = 1\in H^1(\Omega) = W^{1,2}(\Omega)$, suppose we have a sequence $\{u_n\} \subset C^{\infty}_0(\Omega)$ such that $ \| u - u_n\|^2_{H^1(\Omega)} = \| u - u_n\|^2_{L^2(\Omega)} + \| u'_n\|^2_{L^2(\Omega)} \longrightarrow 0 $ so for any $\epsilon>0$ we could find $N>0$ for all $n>N$: $ \| u - u_n\|_{L^2(\Omega)} < \epsilon, \text{ and }\; \|u'_n\|_{L^2(\Omega)} < \epsilon $ By triangle inequality: $ \left|\| u\|_{L^2(\Omega)} - \| u_n\|_{L^2(\Omega)}\right| \leq \| u - u_n\|_{L^2(\Omega)} < \epsilon $ due to $\| u\|_{L^2(\Omega)} = 1$, above implies $ 1-\epsilon < \| u_n\|_{L^2(\Omega)} < 1+\epsilon $ Now we would like to argue like the proof for Poincaré inequality to reach the contradiction, for 1 dimensional case it is very straightforward, for any $x\in \Omega$ we have: $ |u_n(x) - u_n(0)| = \left| \int^x_0 u'_n(t)\,dt\right| \leq \left| \int^1_0 u'_n(t)^2\,dt\right|^{\frac{1}{2}} \; \left| \int^1_0 1^2\,dt\right|^{\frac{1}{2}} = \|u'_n\|_{L^2(\Omega)} $ This implies $\displaystyle\sup_{x\in\Omega}|u_n(x)| \leq \|u'_n\|_{L^2(\Omega)}$, therefore combining everything we have would lead us to the following: $ 1-\epsilon < \| u_n\|_{L^2(\Omega)} \leq \left| \int^1_0 \sup_{t\in\Omega}|u_n(t)|^2\,dt\right|^{\frac{1}{2}} = \sup_{x\in\Omega}|u_n(x)| \leq \|u'_n\|_{L^2(\Omega)} < \epsilon $ which is a contradiction, hence such sequence $\{u_n\} \subset C^{\infty}_0(\Omega)$ does not exist.
A last remark: Why would the density argument of $C^{\infty}_0(\Omega)$ is true for the whole space is because of the decaying property of both the function itself and the derivative of the $W^{k,p}$-functions, for something to be $L^p$-integrable on the whole space, its integration must be small outside a ball of certain size, however for bounded domain, decaying property does not hold any more unless you add the compactly-supported condition.