It has to do mostly with sound change. French underwent two principal sound changes that effectively prevented it from keeping the case system from Latin.
1) Elision of any post-accentual vowels: French, like other romance languages kept the accent on words on the same syllable as they were in Latin, however the nature of the accent in French changed somehow, probably from Latin pitch accent to something more dynamic (which might have been influence from the Germanic languages). Thus the stressed syllable was reinforced while any following vowels were elided.
2) Loss of final consonants: In line with development of other Romance languages, practically all syllable-final consonants disappeared (some actually remarkably late-hence French preserved the case system quite long).
With Latin declension system being based mostly on one syllable suffixes, this proved deadly to any form of synthetic declension in nouns (not so in personal pronouns - cases are distinguished there still to a degree not dissimilar to English).
The same thing happened to verbs, however since the verbs typically had their accent moving because of the 1st and 2nd person plural having two-syllable suffix where ante-penultimate was long (/'lau-do:/ vs /lau-'da:-mus/), the conjugation system did not disappear entirely but was restructured based on vowel-shifts and root consonant play in many verbs:
je peux /pö/ - nous pouvons /pu vo~/
tu peux /pö/ - vous pouvez /pu ve/
il peut /pö/ - ils peuvent /pö v/