SM
SD-карта работает по протоколу SPI (там три основных контакта – один для тактов, и по одному для передачи данных туда и обратно), и дает контроллеру низкоуровневый доступ к своей памяти. USB-флешка работает по протоколу USB (там две жилы – дифференциальная пара, по ним данные передаются и туда, и обратно) и предоставляет совсем другой уровень доступа к памяти (точнее, прежде чем дойдет до памяти, там особый протокол знакомства устройства с хостом с кучей заморочек).
Общаться с SD-картой намного проще, потому что она умеет толко одно - память. Общаться с USB-устройством намного сложнее, потому что бывает куча разных USB-устройств (и протоколы это предусматривают). Теоретически Arduino может быть USB-хостом, но это больше из области экспериментов, а не продуктивного использования.