Трудно сказать, почему именно ваш код работает медленно.
У вас нет такого количества элементов DOM , так что, вероятно, проблема не в этом.
Вы, вероятно, должны профилировать код. F12 в Chrome или IE, перейдите на вкладку профилировщика, запустите его, посмотрите на то, что скушает все время.
Чего именно вы пытаетесь достичь? Какой-то эффект размытия? Выполнение всего этого на одном холсте, вероятно, предпочтительнее, при условии, что то, что вы пытаетесь сделать, может быть легко выполнено таким образом.
Что за анимация? Вы физически перемещаете элементы DOM? Это плохо. С точки зрения производительности, никогда не делайте ничего с DOM, если вы можете избежать этого. Если это так, то размещение всего на одном холсте, вероятно, очень поможет. Опять же, трудно сказать с такой маленькой детализацией.
Вы просто делаете размытие анимации? В общем, размытие в CSS быстрее (и проще в написании), чем размытие в Canvas.
В любом случае, ответ, вероятно, не "Слишком много элементов DOM". Это либо слишком много материала для DOM, либо повторяющаяся работа в цикле анимации, либо слишком много взаимодействия с DOM, когда все в холсте было бы лучше.