Это потому, что конструкторы не наследуются в C #.
Ваш базовый класс A имеет конструктор, который принимает экземпляр IB и инициализирует поле.Однако ваш наследующий класс не имеет указанного конструктора и поэтому имеет конструктор по умолчанию без параметров.
Вам нужно предоставить конструктор для D, который принимает экземпляр IB, а затем передать его в базовый конструктор, например
public D(IB instanceOfIB)
: base(instanceofIB)
{
//do other things here if you want or leave empty
}