It's harder to make a good impression on people when they only know you from remote work. In an internship, part of what you want is a recommendation or a job offer. Interns who are present may make a stronger impression on the hiring managers than someone who is only a disembodied line of text. I'm not saying you can't make a good impression working remotely, only that you will have to work much harder to do so.
Further, you, as a person early in his or her career, need to get a feeling for office politics and how that affects work decisions and, most importantly, how to play the game effectively yourself. It is far easier to learn this stuff when not working remote. Most people coming out of school don't have any feel for this at all and it is critical to your workplace success.
From a programming perspective, you are less likely to be in on a lot of the discussions of what to do and how to do it that are made in the architecture of a new project. Even if you are on the phone, it is harder to get a chance to speak and easier for people to forget you are there or were there and had something to contribute. So even if you do contribute, you are less likely to get credited in people's minds. You won't be there for the informal discussions either where people throw ideas around and you won't be sought out informally as a source of ideas. Part of that is because people tend to seek ideas from other people that they know and as an intern working remotely, no one will know you. So you are more likely to be given routine tasks that no one else wants to do because you aren't in on the conversations where this stuff gets divvied up and because people will forget you are there because they don't physically see you.
You need to use the internship to learn to work professionally with a team. You need to see how your work affects others and how others' affects you. As an intern, it is easier to dismiss you from consideration and just let you work your time out remotely than to try to mentor you if you have difficulties in this area. People in the office are likely to get more guidance on working together as their presence can be disruptive if they don't play well with others. The remote person can just be ignored. They don't necessarily plan to keep you as an employee, so there is less incentive to try to help you when they don't know you personally or have to deal with you in the office (where you might be affecting others).
Now some of this is mitigated if the office has a lot of good remote workers as the management is more used to dealing with people remotely. However, as an intern you are lowest on the totem pole and won't automatically have the respect that new co-worker with 10 years of experience who starts out working remotely has.
An additional consideration is that as an intern you will be learning how to program professionally and how the real world of paid programming works. If you are remote, you also have to learn how to effectively work remotely. That means you have twice as much to learn as someone who is working in the office. That might work for you if you have the right personality type, but it is more likely that you will end up learning less by being remote in both arenas and thus not gain what you want to gain from the internship.