Понятие access и refresh токена идут не из JWT, а в основном от протокола авторизации OAuth2 (актуальная версия OAuth 2.1), хотя сейчас они используются и за рамками "канонического" OAuth. JWT это просто формат токена, в JWT можно хранить разные виды токенов. Если говорить про access/refresh то в виде JWT рефреши обычно вообще не хранят, иногда хранят access'ы. Но в целом JWT и OAuth2 не связаны. JWT является стандартным способом представления токена в OpenID Connect (OIDC) который основан на OAuth2, там JWT, а точнее JWS или JWE (подписаный и/или зашифрованный JWT) используется для хранения ID Token (не refresh и не access). OIDC это протокол который используют разные ID провайдеры типа Google ID, ЕСИА (Госуслуги), Microsoft, VK ID, Сбер ID и тд и тп
Основная задача OAuth - обеспечить единую точку авторизации в среде со многими сервисами/приложениями и разными типами взаимодействий, в том числе межсервисными, и обеспечить в такой среде изолированные скопы доступа. Рефреш токен долгоживущий и отправляется только центру авторизации, аксесс токен коротко живущий и используется для доступа к конечному сервису (например какому-либо API endpoint'у). При компрометации сервиса (ендпойнта) компрометируется только access token, поэтому после устранения компрометации не требуется сбрасывать сессии.
В интернетах чаще всего JWT используется для хранения сессионного токена, который опять же не refresh и не access. Используется JWT чтобы хранить информацию о сессии на клиенте, а не в базе, соответственно когда токен вместе с клиентским запросом прилетает от клиента - сервису не надо ходить в базу чтобы достать данные о сессии/пользователе.