Decorator:
- Add behaviour to object at run time. Inheritance is the key to achieve this functionality, which is both advantage and disadvantage of this pattern.
- It enhances the behaviour of interface.
- Decorator can be viewed as a degenerate Composite with only one component. However, a Decorator adds additional responsibilities - it isn't intended for object aggregation.
- Decorator supports recursive composition
- The Decorator class declares a composition relationship to the LCD (Lowest Class Denominator) interface, and this data member is initialized in its constructor.
- Decorator is designed to let you add responsibilities to objects without sub-classing
Refer to sourcemaking article for more details.
UML diagram of Decorator from wikipedia:

Bridge pattern:
- Bridge is structural pattern
- Abstraction and implementation are not bound at compile time
- Abstraction and implementation - both can vary without impact in client
Use the Bridge pattern when:
- you want run-time binding of the implementation,
- you have a proliferation of classes resulting from a coupled interface and numerous implementations,
- you want to share an implementation among multiple objects,
you need to map orthogonal class hierarchies.
UML diagram of Bridge from wikipedia:

From UML diagram, you can observe the difference:
In Decorator pattern, Decorator is implementing Component, which will be replaced by ConcreteComponent at run time.
In Bridge pattern, RedefinedAbstraction is not implementing Implementor. Instead, it uses composition so that Implementor can vary dynamically at run time without client knowledge.
Decorator can't decouple abstraction from implementation unlike Bridge pattern.
Few more useful posts:
When to Use the Decorator Pattern?
When do you use the Bridge Pattern? How is it different from Adapter pattern?