Today, the Arab world is sometimes compared to medieval Europe, when classical Latin was still the only "real" language most people wrote and studied in—but "Latin" in the mouths of its speakers had become early French, Spanish, Portuguese and so on. Today, we recognize that French and Portuguese are different languages—but Arabs are not often sure (and are sometimes at odds) about how to describe "Arabic" today. The plain fact is that a rural Moroccan and a rural Iraqi cannot have a conversation and reliably understand each other. An urban Algerian and an urban Jordanian would struggle to speak to each other, but would usually find ways to cope, with a heavy dose of formal standard Arabic used to smooth out misunderstandings. They will sometimes use well-known dialects, especially Egyptian (spread through television and radio), to fill in gaps.
Short read, well worth your time. Also related: the ongoing discussion of whether Chinese is a language with dialects, or a language group with languages.