Nodeos: v1.5
CDT: v1.5
cleos -u https://jungle2.cryptolions.io:443 transfer chesseosches eosiostackmm "1.0000 EOS"
executed transaction: 861f71e89de2ae7d12bf2738e09bd2501e672e17bb9f4727f1d715cccedcd38a 128 bytes 790 us
# eosio.token <= eosio.token::transfer {"from":"chesseosches","to":"eosiostackmm","quantity":"1.0000 EOS","memo":""}
# chesseosches <= eosio.token::transfer {"from":"chesseosches","to":"eosiostackmm","quantity":"1.0000 EOS","memo":""}
# eosiostackmm <= eosio.token::transfer {"from":"chesseosches","to":"eosiostackmm","quantity":"1.0000 EOS","memo":""}
warning: transaction executed locally, but may not be confirmed by the network yet ]
If I had to guess, you just weren't adding the API extension. And if you had a local node running, SYS is the native token by default instead of "EOS".