I was told that "Can you speak English?" means asking about your normal ability to speak English while "Do you speak English?" is about fluent proficiency in English.
Is it correct?
Not necessarily.
They can mean the same thing and are often both simply used to mean "Are you able to speak + language?"
However, they can mean different things:
1) Can you speak English? = Are you able to speak English (to any level)?
2) Do you speak English? = Do you actually take the opportunity to speak English at all, however regularly?
I don't think you should be too quick to dismiss everything your teacher ever said.
If I'm in a country and don't speak the local language (i.e. nearly every country in the world), I would ask "Excuse me - do you speak English?".
Seems more natural to me than "Can you speak English?".
Wow Keannu, don't be so hard on your teacher - especially when he's not incorrect.
I say "do you speak English" almost as often as "I'll have another".
"Can you speak English" is difficult for me. It doesn't seem natural outside of a job interview or other inquisitive situation.
If I am in a foreign country where I don't speak the language and need to find help, I too would say "Do you speak English?" to someone. However, I wouldn't be asking about their proficiency particularly. I just want to know that they speak, at the very least, enough English to understand my question and help me.
I don't think you can say that your teacher lied to you. He may well use one or the other depending on the nuance of his meaning. I'm just saying that I don't think they have to mean different things.
Also bear in mind, that some people will say "Can you speak English please?" to mean "Please speak English" (in the same way we say "Can you open the window please?") - it's not to do with ability, it's a request but we word it with "Can ..."
When I came back from living in Spain, lots of people were interested in whether or not I had learnt to speak Spanish while I was there. I was asked:
- So do you speak Spanish [now]?
- Can you speak Spanish?
- How's your Spanish?
- I bet your Spanish is fantastic now, isn't it?!
To my mind, the first two mean exactly the same thing. The third is a question about my proficiency and the fourth is an assumption, followed by a query.