A custodial address is a blockchain address provided, owned and managed by a Financial Institution or a Digital Asset Platform, for example, Binance.sg.
In most cases, users do not hold the private keys for those custodial addresses.
A non-custodial address is a blockchain address fully controlled by the user. Addresses generated by hardware wallets, like Trezor or Ledger, are typical non-custodial addresses. Addresses on any wallet software where the private keys are controlled by the user should also be considered non-custodial addresses.
In most cases, users hold and control the private keys for those non-custodial addresses.