모두 is primarily a noun meaning "all", "everyone", with some usage as an adverb too.
다 is heavily used as an adverb, and only occasionally used as a noun.
모두 has a narrower scope of meaning and usage, with no obscure usages.
- 모두 여행을 떠났다: Everyone went on a trip.
- 장관 인선은 모두의 관심사였다: The appointment of the minister held everyone's interest.
- 이것 모두 가져가거라: Take all of these.
- 이 모두가 나의 잘못이다: All of this is my own fault.
다 means "all", "without exception", and the like, but also has other obscure usages.
- 올 사람은 다 왔다: Everyone who's supposed to come is already here.
- 신이 다 닳았다: The shoes have worn out. (here it means "fully", a degree or an extent)
- 사람이 다 죽게 되었다: This person is all but dead. (다 means "almost")
- 그런 일이 다 있었어?: Did that really happen. (다 expresses "even that of all things!")
- 잠은 다 잤다.: So much for sleeping. (다 expresses "no more")
다 as a noun:
내가 네게 줄 수 있는 것은 이것이 다이다: This is all I can give you (can't use 모두 here).
인생에서 돈이 다가 아니다: Money is not all there is to life (모두 may replace 다 here).
So, 다 has a much wider and versatile application compared with 모두.