Потому что figure - блочный элемент. Тег A оборачивает его целиком, то есть и поля, которые margin: auto, из-за чего растягивается на всю ширину. Можно сделать так:
.wrapper {
text-align: center;
}
figure.logo {
display: inline-block;
}
либо:
.wrapper a {display: block;
width: 300px;
margin: 0 auto;
margin-bottom: 10px;
height: 60px;
}
.logo {
background-image: url(/assets/img/logo.png);
height: 60px;
width: 100%;
}
Height сами смотрите куда нужно вставить, в зависимости от того, что у вас в figure.