Зачем нужны интерфейсы в go?
Интерфейсы нужны для полиморфизма.
Конкретно в твоём случае да - разницы нет.
Но чисто в теории ты бы мог сделать вот так:
type Numbers struct {
  Num1 int
  Num2 int
}

type ThreeNumbers struct {
  Num1 int
  Num2 int
  Num3 int
}

func (n Numbers) Sum() int {
  return n.Num1 + n.Num2
}

func (n ThreeNumbers) Sum() int {
  return n.Num1 + n.Num2 + n.Num3
}

func SumAll(numbers NumberInterface) int {
  return numbers.Sum()
}
Функция SumAll будет работать с любыми типами, которые реализуют интерфейс NumberInterface, причём даже если они сами об этом не в курсе, благодаря утиной типизации.
В вашем примере не хватает самого важного, чтобы стало понятно - вызова функции с параметром типа интерфейс.
func someFunc(numbers NumberInterface) {
   numbers.Sum()
}

Если не будет интерфейсов - вы можете передать только конкретный тип Numbers.
А если вы создадите тип Numbers2 - то вы не сможете передать его в туже функцию, у которой тип аргумента Numbers.
Эта проблема отлично решается при помощи интерфейсов.