An interpreter is someone who accompanies another person giving a speech to give real-time translation into another language (including, notably, into sign language).
A translator is someone who translates words into another language, particularly written words, but also for other works such as movies and recorded broadcasts. Note that the broad definition of translators means that interpreters are technically a subset of translators.
In general terms: Interpretation is [always] done in real time, while translation is [usually] done after the fact.
Interestingly, this distinction in terminology carries over into computer science, where an interpreter is a program that directly executes code step-by-step without being compiled, and a translator is a broad term for a program that converts code from one language to another, encompassing both compilers and interpreters.
To address the original question, I suspect that has always been the distinction. The prefix inter- means "between," suggestive of the direct nature of bridging a language barrier between people, whereas trans- means "across" or "bring over," as in bringing a piece of text from one language to another.
To make things more confusing, there is another meaning of interpret, to decipher or to "explain the meaning of or make understandable." This is used to describe such things as portraying an emotion in the form of a dance, discerning the meaning of a dream, or figuring out the meaning of an ancient text in a forgotten language. In this case, the emphasis is not so much on when the interpretation is taking place, but on the fact that the subject matter was previously unintelligible. One who does some of these types of interpretation may also be called an interpreter.