ICE is a compiled language, while BASIC is interpreted. This means that in BASIC, the OS reads your program token-by-token, decides what it needs to do, and then does it. In ICE, you use a program called a compiler to turn your program into an ASM program that you can later run on the calculator's processor directly, without the OS really being involved. This lets ICE programs run much faster than TI-BASIC programs could.
ICE also gives you access to the graphx library, which lets you do a lot of graphics-related things that you wouldn't be able to do in TI-BASIC, like drawing sprites or using the entire screen.
ICE isn't a superset of TI-BASIC, though - it's missing a lot of features from TI-BASIC like floating point numbers (you can't use decimals). It's also very easy to crash your calculator using ICE, since it doesn't check e.g. that a list is large enough before you write a value to it.
Since ICE is no longer being developed, it's probably better to learn
Celtic CE instead. Celtic gives you access to graphx functions as an extension to regular TI-BASIC, which means that you're less likely to crash the calculator and can keep using things like decimals.