I ended up figuring it out while writing out this question so I\'ll just post anyway and answer my own question in case someone else needs a little help.
Use the "D" offset rather than "M" and specifically use "30D" for 30 days or approximately one month.
"D"
"M"
"30D"
df = df.rolling("30D").sum()
Initially, I intuitively jumped to using "M" as I figured it stands for one month, but now it's clear why that doesn't work.