using a disk gives you one place to change (in config) if you decide that your files are better stored in another location.
Ideally you would store your images in a place that is not directly in your public folder.
Suppose you decided to move the images to a service like S3, using asset() means you can only ever resolve the images from the local public folder, whereas using a disk you could say
<img src="{{ Storage::disk('avatars')->url($user->avatar) }}" />
Then it would not matter what location the disk resolves to.
But a mention of @PovilasKorop might prompt him to comment about his post.
One further thought.... using a disk allows you to have different storage for production and development. Wheras production might use the cloud to store images, in local dev you could use your local disk.