The delegate tutorial in MSDN mentions the difference:
delegate is useful when single function is used, or several implemetations of one method specification are used. Those functions are parallel.
Interface is mostly a set of methods specification. Those functions might have relationship between each other and the caller is likely to cast interface to or from other objects, interfaces. And also Interface can inherit another Interface.
I think they are two levels of abstraction: function, class.
The Observer pattern should be based on Interface, it is almost impossible to use delegate to implement Director, which has to describe the complex communication between colleagues.