This is an extension of my comment to Anton Petrunin's answer, as requested by erz. Similar calculations are contained in most textbooks on PDEs (e.g. Gilbarg–Trudinger), and I guess one can find a detailed answer in some textbooks on convex bodies.
Claim 1: We have $|\nabla \operatorname{dist}(x_0, \partial \Omega)| = 1$ if the maximal ball $B(x_0,r)$ contained in $\Omega$ touches the boundary of $\Omega$ at one point only.
(Edited; the first version of the proof was simpler, but incomplete; the following one is much clearer if one makes a picture on the fly).
Let $x_0 \in \Omega$, let $B(x_0, r)$ be the largest ball centred at $x_0$ contained in $\Omega$, and denote by $z$ the unique common point of $\partial B(x_0,r)$ and $\partial \Omega$.
To simplify the notation, with no loss of generality suppose that $x_0$ is the origin $0$, and that $z = (0, \ldots, 0, -r)$. For $x \in \mathbb{R}^d$ we write $x = (\tilde{x}, x_n)$ with $\tilde{x} \in \mathbb{R}^{n-1}$, $x_n \in \mathbb{R}$. In particular, $z = (\tilde{0}, -r)$.
Necessarily $\Omega$ is contained in the upper half-space $\{x_n > -r\}$. Therefore,
$$\operatorname{dist}(x, \partial \Omega) \leqslant x_n + r. \tag{1} $$
On the other hand, let $a = \sqrt{1 + \delta^2} > 1$ be a number close to $1$. We will later show that for $t \geqslant 0$ small enough, say $t \in [0, t_0]$, $\Omega$ contains $$B_t = B((\tilde{0}, a t), r + t) .$$ Note that these balls are tangent to the cone
$$C_a = \{x \in \mathbb{R}^n : x_n > |\tilde{x}| - (a - 1) r\} .$$
Before we prove this claim, let us see how it implies Claim 1. For $x$ sufficiently close to $0$ we have
$$\operatorname{dist}(x, \partial \Omega) \geqslant \operatorname{dist}(x, \partial B_t) = r + t - |x - (\tilde{0}, a t)| = r + t - \sqrt{|\tilde{x}|^2 + (x_n - a t)^2} $$
for all $t \in [0, t_0]$. If $x_n < 0$ and $|\tilde{x}| < -\delta x_n$, we choose $t = 0$ and we get
$$\operatorname{dist}(x, \partial \Omega) \geqslant r - \sqrt{|\tilde{x}|^2 + x_n^2} \geqslant r - \sqrt{\delta^2 + 1} x_n = r - a |x_n| = r + a x_n. $$
Otherwise we choose $t = (a \delta)^{-1} (\delta x_n + |\tilde{x}|)$ (which is in $[0, t_0]$ if $|x|$ is small enough) and we get, after simplification,
$$\operatorname{dist}(x, \partial \Omega) \geqslant r + \frac{x_n - \delta |\tilde{x}|}{a} $$
(the right-hand side is the distance to the boundary of $C_a$). Taking (1) into account, in both cases we get
$$|\operatorname{dist}(x, \partial \Omega) - r - x_n| \leqslant \max\left\{a - 1, \frac{1}{a} - 1 + \frac{\delta}{a}\right\} |x| . $$
It follows that
$$\limsup_{x \to 0} \frac{|\operatorname{dist}(x, \partial \Omega) - r - x_n|}{|x|} \leqslant \max\left\{a - 1, \frac{1}{a} - 1 + \frac{\delta}{a}\right\} . $$
Since $a > 1$ can be arbitrarily close to $1$, we get
$$\lim_{x \to 0} \frac{|\operatorname{dist}(x, \partial \Omega) - r - x_n|}{|x|} = 0 , $$
which means that the gradient of $\operatorname{dist}(x, \partial \Omega)$ exists at $x = 0$ and it is equal to $(0, \ldots, 0, 1)$.
It remains to show that $\Omega$ contains $B_t$ for $t \geqslant 0$ sufficiently small. Note that $B_t$ is a ball tangent to the cone $C_a$, and the convex hull of $B_{t_1} \cup B_{t_2}$ contains $B_t$ for all $t \in [t_1, t_2]$. By assumption, $\Omega$ contains $B_0$, and so if $\Omega$ contains $B_{t_0}$ for some $t_0 > 0$, then it also contains $B_t$ for all $t \in [0, t_0]$. Therefore, it is sufficient to show that $\Omega$ contains $B_t$ for some $t > 0$. Suppose, contrary to this claim, that for each $t > 0$ there is a point $y_t \in B_t \setminus \Omega$. Choose any partial limit $y$ of $y_t$ as $t \to 0$. Since $y_t \notin \Omega$, we have $y \notin \Omega$. Similarly, $y_t \in \overline{B}_t$, and so $y \in \overline{B}_0$. Thus, $y \in \Omega^c \cap \overline{B}_0 = \{z\}$, that is, $y = z = (\tilde{0}, -r)$. On the other hand, $y_t \in B_t \setminus B_0$, and so the $n$-th coordinates of $y_t$ and $y$ are not less than $-a^{-1} \delta r$. But this is a contradiction, because $-r < -a^{-1} \delta r$. The proof is complete.
Claim 2: For almost every $x_0 \in \Omega$ the maximal ball $B(x_0, r)$ contained in $\Omega$ touches the boundary of $\Omega$ at a single point.
A a Lipschitz function, $f(x) = \operatorname{dist}(x, \partial \Omega)$ is differentiable almost everywhere. However, if $\partial B(x_0, r)$ has at least two points $z_1$, $z_2$ in common with $\partial \Omega$, then $f$ is not differentiable at $x_0$: by the proof of Claim 1, $\nabla f(x)$ is equal to $v_1 = (x_0 - z_1) / |x_0 - z_1|$ on $(x_0, z_1)$, and to $v_2 = (x_0 - z_2) / |x_0 - z_2|$ on $(x_0, z_2)$. Thus, if $\nabla f(x_0)$ existed, it would be equal to $v_1$ and to $v_2$ at the same time, which is impossible, because $v_1 \ne v_2$. This proves that $\nabla f(x_0)$ does not exist, and so Claim 2 follows.
By the way, is there an elementary proof of Claim 2, which does not rely on a.e. differentiability of Lipschitz functions?