Чтобы БД не засорялась.
Если каждый день создается по 100 аккаунтов, которые не подтверждают, то через год в БД останется 36500 лишних записей необходимых для подтверждения аккаунтов (если срок жизни ссылок не ограничен). А все они действительно нужны? Зачем им занимать место в БД, если спустя три дня человек так и не подтвердил указанную почту?
А если срок жизни будет три дня, то такие записи будут удаляться, а при необходимости человек сможет зайти на этот аккаунт и повторно получить ссылку для подтверждения.
Так же с целью экономии памяти (и чтобы освободить логины для регистрации) можно удалять и сами неподтвержденные аккаунты спустя какое-то время.