Bundle – это класс, реализующий ассоциативный массив, т.е. хранящий пары ключ-значение. Имеет get() и put() методы для примитивов, строк и объектов, которые реализуют интерфейсы Parcelable и Serializable.
Bundle используется для передачи данных между базовыми компонентами.
Также рекомендуется использовать Bundle для передачи данных между процессами, потому что Bundle оптимизирован под маршалинг/демаршалинг.

Intent описывает операцию к исполнению. Интенты используются при старте базовых компонент, например startActivity(intent: Intent) и startService(intent: Intent).
Intent так же как и Bundle имеет get() и put() методы и используется для передачи данных. Но Intent не реализует ассоциативный массив, а лишь предоставляет интерфейс. Intent имеет внутри объект Bundle, куда делегируются переданные пары и уже Bundle используется для хранения и передачи данных.