Дерби, исторически, вообще из бегов понятие. В футболе, традиционно, так называют матч команд из одного города. Вот, "Атлетико" - "Реал" - это дерби, а "Реал" - "Барселона" нет. В России словом "Дерби" в конце девяностых стали называть матчи "Спартака" и "ЦСКА". Очень важно, что матчи остальных московских команд друг с другом, так не называли. "Идешь на Дерби?" - этот вопрос задавали ровно по поводу одной игры. Ну а дальше как-то прижилось, что "Дерби" - это вообще любой принципиальный матч. Слова, как известно, иногда меняют смысл.
Ну, на самом деле дерби немного более широкое понятие. К этому можно причислить матчи команд из одного региона. Например, Джорджия и Джорджия Тек, когда играют друг с другом это ин стэйт дерби, например. Спартак и Зенит это, как сказано выше, принципиальное противостояние. В США это называют райвлри. Ну и да, у таких матчей, пусть и внутри чемпионата своя особая история.