Насчет всех пакетов судить не берусь, но Математика вам "практически верно" дает ответ, ведь она при развороте сумм не видит там никаких переменных с неизвестными индексами типа j, у нее там все индексы пронумерованы, а вы дифференцируете по переменной, которой нет в выражении. И Математика вовсе не обязана при символьных вычислениях предвидеть подобные вещи. Математика это не решебник любых задач, это инструмент, с помощью которого можно решать задачи. Эту задачу можно решить и без помощи математических пакетов.
Если уж непременно надо и именно в такой формулировке решать, то переопределите производную примерно такой функцией
Код:
SetAttributes[Dx, HoldAll];
Dx[Sum[Subscript[x_, i_]*Subscript[x_, j_], {i_, 1, Infinity}],
Subscript[x_, k_]] := Subscript[x, k - 1] + Subscript[x, k + 1]
и она даст вам так желаемую вами формулу. Но работать будет
только для сумм такого вида. Чего вы этим добиваетесь, я не очень понимаю....