To add a little to what Mark said…
Core is written for the SmartThings platform and is a scripting language that lets you set up stacked conditionals and very complex rules for devices attached to your SmartThings account.
IFTTT is an independent service. Many different companies sign up to have “channels” on IFTTT. It is up to each company what features of their devices/services they make available through IFTTT. Users of IFTTT are able to create “applets” in an “If This, then that” format which lets you take an event from one channel and use it to trigger an event on another channel. This allows for integration between devices that don’t have a direct integration.
For example, there might be an air-conditioner that didn’t have any direct integration with SmartThings. But if it had an IFTTT channel, then you could use the SmartThings channel as the “if” and the air-conditioner channel as the “that” and get indirect integration that way. But the logic available for rules in IFTTT is much simpler than the logic available in core.
So Core was created by a SmartThings customer, runs in the SmartThings cloud, and let you create very complex rules to control devices attached to your SmartThings account.
IFTTT is an independent service and was created to allow many different companies to offer simple “if this then that” integration in a standardized format. It is primarily used to link together two devices that otherwise cannot communicate, with IFTTT as the “man in the middle” passing the messages around.
As Mark also said, these often end up being complementary. For example, you might want a rule to turn off the air conditioner if The bedroom window was open for more than two minutes. And again, we’re assuming an air conditioner that doesn’t have any direct integration with SmartThings, but does have an have an IFTTT channel. But you would create all of the control logic in SmartThings, perhaps using core, and then the very last step would be to do something that would trigger an IFTTT applet with the air-conditioner channel as the “that.”
So core is a rules engine for setting up complex rules for your SmartThings account. IFTTT is a third party service offering a simple “if this then that” structure that can be used with devices from many different companies that normally cannot talk to each other. Since SmartThings does have an IFTTT channel/service, you can take advantage of the additional integration possibilities that IFTTT offers.