Because the function is monotonic this locates distinct rational number in each discontinuity. The open intervals (supL,infU), at the points of discontinuity, are disjoint because the function is monotonic. A set of rationals is countable,so the set of discontinuities of a monotonic function is countable.
Alright so "this locates distinct rational number in each discontinuity" is kinda wierd so why not irrational and irrational are uncountable so this tells discontinuities of the function is uncountable.
Here is another approach which you may find useful.
Let's assume $f$ is increasing on $I$. If $f(a) =f(b) $ then $f$ is constant and therefore continuous so that $D$ is empty. Let's assume $f(a) <f(b) $. Since $f$ is increasing it may possess only jump discontinuities and the right hand limit of $f$ will be greater than its left hand limit at each point of its discontinuity. Let the difference of these limits at point $c$ be called jump at $c$. Consider the set $D_n, n\in\mathbb {N} $ defined by $$D_n=\{x\mid x\in[a, b], \text{ jump of } f\text{ at } x> 1/n\}$$ The sum of jumps of $f$ can't exceed $f(b) - f(a) $ and each jump at points of $D_n$ exceeds $1/n$ and hence the number of points in $D_n$ must be less than $n(f(b) - f(a))$. Thus each $D_n$ is finite and since $D=\cup_{n=1}^{\infty}D_n$ it follows that $D$ is countable.
The extension to open interval $(a, b) $ can be done by noting that $$(a, b) =\bigcup_{i=1}^{\infty} [a+1/n,b-1/n]$$ and the similar argument can be used to deal with $[a, b) $ or $(a, b] $.
The extension to unbounded intervals follows from the fact any unbounded interval including the whole set $\mathbb{R} $ can be written as a countable union of bounded intervals like $$\mathbb{R} =\bigcup_{n=1}^{\infty} [-n, n] $$