Имеется мнение, что метапрограммирование не имеет место быть в веб проектах. Так ли это?
Это не так. Метапрограммирование, как и везде, служит в вебе для уменьшения количества кода. Скорость зависит в большей степени от кода, чем от языка (как и всегда в интерпретируемых). Работал в команде, где было около 10 проектов с применением метапрограммирования, все работало как часы.
Метапрограммирование как и может помочь структурировать код, и увеличить производительность. Допустим, у вас есть модуль (консерн), добавляющий некоторую функциональность для разных объектов. Назовем их объектами и субъектами.
В одном классе может бытьinclude MyModule
act_as_object
В другомinclude MyModule
act_as_subject
В методах act_as_object и act_as_subject уже создаем нужные наборы методовmodule MyModule
  def act_as_object
    define_method :obj_meth_1 do; end
    define_method :obj_meth_2 do; end
  end
  def act_as_subject
    define_method :subj_meth_1 do; end
    define_method :subj_meth_2 do; end
  end
end
Таким образом нужная для разных моделей функциональность собирается в одном месте,  а при подключении модуля можно выбирать, какие конкретно методы в них добавлять.