So my reasoning is admittedly a bit of a long (and perhaps paranoid) bow, but here it is:
In many cases, the difference between them is both important and very subtle. If you're using quasis for their ability to escape embedded content, then any accidental use of "#{...}" instead of `${...}` could lead to security bugs which are not immediately obvious (they often produce different output only on malicious input, which you might not always be testing for).
Given that, I like that the difference is hard to mistake, and that it is reinforced at each embedded variable - because in most cases, you care _a lot_ which one you're using. Consider:
var content = "
<h1>Hello there</h1>
<p>
line1
line2
#{greeting}
line3
line4
</p>
";
This is safe when `greeting` is a predefined or localized string.
But if you change just that line to:
#{greeting}, #{username}
Then this should trigger a mental warning, because "#{...}" is not safe for embedding arbitrary data.
If we used #{ ... } for both unsafe string interpolation and safe quasi interpolation, you might assume that this big-html-looking-thing is enclosed in ``, without checking it too hard. And then you have introduced an XSS vulnerability[0].
Perhaps this is too much effort to counter an unlikely scenario, and it's not really the language's job to make you jump through hoops to prove you know what you're doing. But it's also very important to understand the distinction between these two types of quotes, and they are often many lines long - so I personally like the reinforcement that the distinct interpolation characters provide.
If it's too confusing though, I'll only be slightly sad to just make them the same ;). But note that here are other differences too - e.g `$foo` works inside a quasi (for convenience of stringing templates together), while you always need the braces inside a string interpolation (because we don't want to make you always escape `#` or `$` in every single string). So just making the trigger character the same would not actually make the two consistent, we'd need to resolve that difference too.
What text editor do you use? The problem becomes much easier to spot if you use the vim syntax highlighting (it's under `vim/` in the SJS repo), because it will only highlight interpolation that matches the surrounding quotes. I'm not sure if the emacs mode does the same, though (I haven't used it).
[0] In the case of surface, this is already mitigated because that we _always_ escape strings. But there are plenty of potential uses of quasis where you would accept either a quasi or a flat string.