What are the possible reasons why STP would choose to use a FastEthernet link over an EtherChannel?
Below is a network diagram where this is happening.
One possible answer is because the top switch in the diagram is the root switch. The other switches have their root ports connected to the root switch. That means the etherchannel will be blocking to avoid a loop.
Here's a general algorithm that STP uses.
You need to think in terms of the total cost of the paths to the root. As long as the two uplinks to the root have equal cost, they will both be forwarding because the relevant calculation is whether the uplink cost is less than the uplink cost plus the etherChannel cost.
Should you want the etherChannel active, one way to do it is to increase the cost of one of the uplinks, so that uplink A cost > uplink B cost + etherChannel cost. If you turn the problem around, and think "how can I get this link to block", that may make it easier to get your head around.
show spanning-tree