Moras and syllable weight are the same type of thing: they're a way to explain why different syllables behave differently, in certain languages. But which one is more useful depends on the details of the language in question.
In English, syllables come at a mostly-consistent pace. But in Japanese, they don't. A syllable like taa or tan takes approximately twice as long as a syllable like ta, and a syllable like taan takes approximately three times as long. As a result, the "syllable" ends up not being a very natural unit for talking about prosody. Instead, we talk about a smaller unit, the "mora"; ta is one mora, taa and tan are two, taan is three. This ends up being a useful system for analyzing Japanese prosody.
In Latin, on the other hand, syllables like ta and tan/taa act differently—but there's no difference between the behavior of tan/taa and taan. In other words, the only distinction that matters is between syllables that have either a long vowel or a coda (or both), and syllables that have neither. Furthermore, the number of consonants in the onset and coda don't matter; all that matters is if a coda is present or not. In this case, it's more useful to say that syllables have a binary property: they're either "heavy" or "light". The actual number of morae doesn't really matter: once a syllable is heavy, thanks to having either a coda or a long vowel, adding the other makes no difference.
Sometimes both of these are useful. In (Old Babylonian) Akkadian, there are three types of syllable: light syllables have a short vowel and no coda, heavy syllables have a long vowel or a coda, and ultraheavy syllables have either a long vowel and a coda, or an ultralong vowel. The exact number of morae still doesn't necessarily matter: adding a coda to an ultralong vowel makes no difference. But it's convenient to define these categories of syllables in terms of morae: one mora is a light syllable, two morae is a heavy syllable, three or more morae is an ultraheavy syllable.