I feel that French and Spanish speakers speak their languages faster than English speakers do. Is this difference real, or is it just a mistake in my observation (note: I am much less familiar with those languages than with English)? If it is real, is this difference caused by some traits in the languages, or is it just a cultural thing?
There are two things going on here:
The first is that you are not as familiar with French and Spanish, so their speech appears to be faster. This occurs with pretty much every language.
The second is that, yes, your intuitions are (tentatively) correct and some languages are spoken faster. There was a recent study that explored this, and I'll post a link to an article in TIMES summarizing it. I'll recap it here. Since you asked here, I'll try to give a slightly more technical explanation.
The reason has to do with information density, which is basically the information content of something divided by its size. For example, 'male human' is not as dense as 'man', because the later conveys the same information, but in one syllable, whereas the former does it in three.
We can give a roughly mathematical account by fixing the unit of meaning to be the meaning of some arbitrary expression. This allows us to express the information density of a language with a ratio: syllables/meaning. Two other important ratios here are syllables/time (How many syllables a speaker of the language uses per unit of time) and meaning/time (how much time it takes to express a unit of meaning). Notice that (syllables/time * meaning/syllables = meaning/time). That is, there are certain mathematical relationships between these concepts.
When researchers looked at all of these, they found that meaning/time was constant. No matter what language was used, speakers took about the same amount of time to express the paragraph. What differed between languages was how many syllables they used to express that meaning. This is where the perception of faster speech comes in: Spanish, for instance, used more syllables than English, so there is some sense in which Spanish is 'faster' than English. Japanese is perceived as super fast, and Chinese is slower.
So what is different about Spanish? Look at the equation (syllables/time * meaning/syllables = meaning/time) again. Notice that if meaning/time is constant (which the study found), then syllables/time and meaning/syllable must have an inverse relationship with each other: that is, when one goes up, the other goes down.
Basically, Spanish syllables have less information in them than English syllables, so it takes more of them to express the same meaning. Why is that?
It probably has to do with what syllables are allowed in a language. Different languages allow different combinations of sounds in their syllable. English, for instance, is fairly permissive: "stretch", for instance, is one syllable, but it is a very complex combination of sounds. Other languages aren't as permissive. Chinese doesn't have a lot of consonants in the coda (last part) of their syllables, but they more than make up for it by having four tones for any syllable they do allow.
To take an extreme example, imagine a language with only two syllables: /ba/ and /da/. Different words are expressed with different sequences of /ba/ and /da/. "No" could be /ba/, "Yes" could be /da/, "man" could be /badaba/, etc. Eventually we have "bachelor" expressed as /bababadabadabadababadabadadadababada/. As you can see, it will take a long time to get anything expressed in that language. To generalize a bit, the more syllables a language allows, the fewer it will need to express any given meaning.
What specific reasons Spanish has for having low information density, I can't tell you.
Just some quick notes about Spanish in particular, in light of Nathan's answer.
Spanish has largely retained the number of syllables in a word since Latin (as has Italian). Latin expressed quite a bit of meaning through case assignment and verb conjugation. Spanish has retained some of the verb conjugation and none of the case assignment. Thus we have to rely more on prepositions de, para, encima de, dentro de etc. in phrases which in Latin may have had prepositions of the same length but more likely had shorter ones or none at all.
Since most often case assignment was possible within the last syllable of the word, and Spanish has usually retained a form ending in -o or -a (which I've heard comes from the ablative, but I'm skeptical), rather than chopping off the ending entirely as, say, in French, this automatically ups the number of syllables.
Certain initial consonant clusters from Latin are not allowed in Spanish, and this is often dealt with by adding an e- to native words and loanwords beginning in them, rather than (as Finnish does with loanwords beginning in disallowed clusters) by deleting letters. E.g. escribo < scri:bo:. (These new rules of consonant clusters may have been due to a phonetic influence of Iberian and Basque speakers. Basque has not very many phonemes and usually comes off as fast, too.)
And a point that brings up something not yet mentioned: Spanish does not have vowel length distinction or consonant length distinction (beyond rr vs. r, which isn't really just a length distinction). Languages (like Latin and Italian) with these distinctions are able to encode more data using it, and maybe even sound like they're going slower since there's less change over time in the acoustics. Spanish also changed e to ie and o to ue in stressed position in many words; I wager a diphthong is likely to make you sound like you're "going faster" than a pure vowel would.
Nathan and Daniel already gave very insightful answers. But I want to point out another detail, something I observe sometimes. I'm not a linguist, I'm rather poor at languages (you may notice it).
My mother tongue is German, but I moved to Spain at the age of six. So I know both - very different - languages. Beside their (mostly) different grammar and vocabulary, there is another difference: Germans make small pauses between words, Spaniards do not. They rather concatenate words. There are two consequences I know: Some words change vowels if they are pronounced in combination with others (e.g.
and) followed by a word starting with
y changes to
e), other words that are feminine because of their ending sometimes are pronounced with a male article ('el aguila', 'un agua') to avoid two following
The other consequence: You sometimes can't separate words if you don't know them. Or, you have to concentrate more on the speaker to get everything correctly. I rarely notice that on Spanish speakers, but I do on US English speakers - some of them do it as well! They pronounce everything in one flow, without separating words. But there are others I understand perfectly, even if they speak fast. Those I don't understand don't necessarily speak really fast, but I have to concentrate and I get the impression, they speak fast.
Languages are based on words, not syllables or letters. It makes a great difference if you get a hint where words start or not.
So, my point is: Maybe some people from some countries speak faster than others, but maybe they just seem to speak faster, as it takes a greater effort to understand them.
Of course, if you don't know a language and don't understand anything said, this argument is invalid.
I am not sure that the mean length of the words explains the speed of spoken language : they are very similar between French and Italian (many words too), but, when spoken, the rhythm is quite different.
From the French point of view, Swiss and Belgian natives are notoriously slow, and even the Canadians from Québec - with almost exactly the same vocabulary (just a few words are different, or don't have the same meaning), and of course the same grammar.
Besides, in Chinese the words are very short, and they are not any slower when speaking ; interpreting in real-time is almost impossible, you have to pray the speaker for some pauses.
There is a rather new answer to this old question: Languages may differ in their speed measured in syllables/second or words/second, but are pretty uniform in the amount of information per time. The speech rate measured in bit/second is uniform over very different languages and it is about 39 bit/s, see this paper: Christophe Coupé, Yoon Oh, Dan Dediu, and François Pellegrino, Different languages, similar encoding efficiency: Comparable information rates across the human communicative niche.