Ordinary Cylinder
An ordinary solid cylinder looks like this:

An the equations look like this
$$\begin{align}
x^2 + y^2 \leq R^2 \\
|z| \leq \frac{h}{2}
\end{align}
$$
Oblique Cylinder
An oblique cylinder looks like this:

I will show how to derive the equations an oblique cylinder that is sheared in the $xz$ plane.
Importantly, the height of the oblique cylinder should not change because that will change the volume. Therefore, the range of $z$ should remain the same.
A horizontal shear mapping is as follows:
$$\begin{bmatrix}
x'\\
z'\\
\end{bmatrix}
=\
\begin{bmatrix}
1 & m \\
0 & 1\\
\end{bmatrix}
\begin{bmatrix}
x\\
z\\
\end{bmatrix}
=
\begin{bmatrix}
x + mz\\
z
\end{bmatrix}
$$
This transformation can be seen using Python:

Notice the height between the bottom and top remains the same. This is the transformation we want. However, it is not stated in terms of $\alpha$, the angle from the vertical. It's stated in terms of the distance of the top point from the original spot, i.e. $m$ (see the picture above).
Now consider the following:

In this example, $\alpha_2 > \alpha_1$, so consequently, $cos(\alpha_2) < \cos(\alpha_1)$, which you can see in this side-by-side comparison.

Call the verticals for each triangle $A_1,A_2$, the horizontals $O_1,O_2$ and the hypotenuses $H_1$ and $H_2$.
Currently, $H_1 = H_2$ but we want $A_1 = A_2$. So we should normalize the adjacent sides to be the same length. This can be done as follows:
$$\begin{align}
A^2 + O^2 & = H^2 \\
\frac{A^2}{A^2} + \frac{O^2}{A^2} &= \frac{H^2}{A^2} \\
1 + \tan^2(\alpha) & = \sec^2(\alpha)
\end{align}
$$
which is the common trig identity. So if we set $m = \tan(\alpha)$, we end up getting this instead

Notice the heights are now the same, which means for different angles the height will be constant as desired. Thus, the transformation should be
$$\begin{bmatrix}
x'\\
z'\\
\end{bmatrix}
=\
\begin{bmatrix}
1 & \tan(\alpha) \\
0 & 1\\
\end{bmatrix}
\begin{bmatrix}
x\\
z\\
\end{bmatrix}
=
\begin{bmatrix}
x + z\tan(\alpha)\\
z
\end{bmatrix}
$$
So, the equation of the cylinder would be
$$\begin{align}
(x-z\tan(\alpha))^2 + y^2 \leq R^2 \\
|z| \leq \frac{h}{2}
\end{align}
$$
This is the set of formulas Math Lover provided, so they were correct. However, I found their intuition for why $\tan$ was used lacking so I wanted to supplement.
Using $m=\sin$ vs $m=\tan$
In the comments, there was some discussion of whether $\sin$ or $\tan$ should be used for $m$. In this Python code, you can clearly see that $\sin$ wouldn't make sense.

See how even though $\alpha = 90^{\circ}$, $\sin(\alpha)$ doesn't stretch the cylinder waaaay out like we would expect.
However, notice for $\tan$, even at $\alpha = 85^\circ$, the stretch becomes very pronounced

Also, notice how the norm of the vertical sides for the $\tan$ output become enormous, which is also what you would expect, but it does not for the $\sin$ output.
This can also be seen in 3D here.
With $\sin$ at $\alpha = 90^\circ$,

Notice, this is the maximum possible slant and we can easily imagine a substantially more slanted cylinder.
With $\tan$ at $\alpha = 85^\circ$,

Why it is $x-z\tan(\alpha)$ not $x+z\tan(\alpha)$
If you use $x+z\tan(\alpha)$, that means the center of the top circle of the cylinder would be $x = -\frac{h}{2}\tan(\alpha)$, which is negative for $0\leq \alpha \leq 90^\circ$.
This would produce
$$\begin{bmatrix}
x'\\
z'\\
\end{bmatrix}
=\
\begin{bmatrix}
1 & -\tan(\alpha) \\
0 & 1\\
\end{bmatrix}
\begin{bmatrix}
x\\
z\\
\end{bmatrix}
=
\begin{bmatrix}
x - z\tan(\alpha)\\
z
\end{bmatrix}
$$
and lead to the following cylinder

This is what None suggested and, as you can see, the cylinder here would be flipped from the desired cylinder with positive $x$ for positive $z$.