Видимо, в JS-стране нет ничего святого. Даже не пиксели!

Если вы столкнулись с проблемой размытого текста/линий внутри холста, скорее всего, вы видите ее на экранах с высоким разрешением.

Как вы определяете экран с высоким разрешением из javascript? Через window.devicePixelRatio. Проверьте, если это › 1.

Хорошее объяснение того, почему эта проблема может возникнуть:

Решение

Увеличьте плотность растрового изображения холста и получите качественное изображение для экранов с высоким разрешением. Задайте для атрибутов «ширина» и «высота» элемента холста произведение window.devicePixelRatio и размера документа/окна просмотра холста. Это будет соответствовать плотности пикселей растрового изображения плотности пикселей физического устройства!

Разработчики спецификации HTML5 могут быть такими:

Эй, чувак, мы слышали, что ты любишь пиксели, поэтому мы обернули твои пиксели внутри пикселей, чтобы ты мог смотреть на пиксели, наблюдая за пикселями.