How to prove that there is no better algorithm
I presume that $L$ is the length of $D_m$ for all machines.
Hence your input is of size $O(|M|\cdot (L+|A|))$ because it contains $|A|$ activities for all machines and the $D_m$ array of length $L$ for all machines. Your runtime is $O(|M|\cdot (L+|A|))$. Thus your algorithm runs in linear time with respect to your input
(meaning your algo is not pseudo-polynomial it is in fact polynonmial and even linear).
If a value in $D_m$ could be below $0$ we would have to check every value in $D_m$ for every machine at least once and for every activity that $D_m$ is large enough making the minimum runtime $\Omega (|M|L + |M||A|) = \Omega (|M|(L+|A|))$ and thus your algo optimal.