- Замените fill="transparent" на fill="none"
- svg - блок обернуть контейнером и задавать размеры для div, а не для svg
- координаты круга сделать целочисленными cy="43" cx ="43"
.container
{
width: 88;
height: 88;
}
<div class="container">
<svg width="88" height="88" viewBox="0 0 88 88">
<circle r="40" stroke-width="2" stroke="#6d6d6d" fill="none" cy="43" cx="43"></circle>
<circle r="40" stroke-width="2" stroke="#00c81c" fill="none" cy="43" cx="43"></circle>
</svg>
</div>
Может быть оказывает влияние, что у вас один круг накладывается на другой, но у этих кругов вы задали разную ширину обводки.
Дело в том, что stroke располагается симметрично по обоим сторонам. То есть, если у вас радиус равен 40px при stroke-width ="2px" цветной бордюр будет между радиусами 39px и 41px. При stroke-width ="3px" соответственно 38.5px и 41.5px.
У вас больший круг расположен ниже, меньшего круга, поэтому при разных цветах бордюров возможно размытие границ.
Другими словами или сделайте одинаковую ширину stroke-width или пусть круг, где stroke-width="3px" будет сверху.