You didn't do anything wrong. It's just that the results from the lower load statement are piped directly into the preceding load. That's why the distinct in the lower load statement has no effect.
Btw you can get the result you want like this too:
LOAD Distinct MonthStart(Date) as month, MonthStart(Date,-1) as [month-1]